summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAchim Gottinger <achim@gentoo.org>2000-10-19 16:03:41 +0000
committerAchim Gottinger <achim@gentoo.org>2000-10-19 16:03:41 +0000
commite2c0e8170dcdc323c4d94b6d6cf34d690141c87f (patch)
tree4bb836f780d0f5e30d2438628df25978e4899c1e /app-text/tetex/files/teTeX-1.0.dif
parent*** empty log message *** (diff)
downloadhistorical-e2c0e8170dcdc323c4d94b6d6cf34d690141c87f.tar.gz
historical-e2c0e8170dcdc323c4d94b6d6cf34d690141c87f.tar.bz2
historical-e2c0e8170dcdc323c4d94b6d6cf34d690141c87f.zip
*** empty log message ***
Diffstat (limited to 'app-text/tetex/files/teTeX-1.0.dif')
-rw-r--r--app-text/tetex/files/teTeX-1.0.dif1714
1 files changed, 1714 insertions, 0 deletions
diff --git a/app-text/tetex/files/teTeX-1.0.dif b/app-text/tetex/files/teTeX-1.0.dif
new file mode 100644
index 000000000000..58daf2dac2b2
--- /dev/null
+++ b/app-text/tetex/files/teTeX-1.0.dif
@@ -0,0 +1,1714 @@
+--- rc.config.tetex
++++ rc.config.tetex Thu Mar 2 14:31:12 2000
+@@ -0,0 +1,7 @@
++##
++## The automatical font generation of the TeX/LaTeX systems do
++## locate the bitmap font into the directory /var/cache/fonts/.
++## If CLEAR_TEXMF_FONTS is set to "yes" then this directory
++## will be cleared from fonts not used in the last 20 days.
++##
++CLEAR_TEXMF_FONTS="no"
+--- tetex.cron
++++ tetex.cron Thu Mar 2 14:31:12 2000
+@@ -0,0 +1,29 @@
++#!/bin/bash
++#
++# Remove pk files older than 20 days
++# Remove tfm files older than 60 days
++# Don't remove source files
++# Call mktexlsr
++#
++
++. /etc/rc.config
++test -r /etc/rc.config.d/tetex.rc.config && . /etc/rc.config.d/tetex.rc.config
++
++VARTEXFONTS=$(kpsewhich --expand-var '$VARTEXFONTS' 2> /dev/null)
++
++if test "$CLEAR_TEXMF_FONTS" = "yes" -a -n "$VARTEXFONTS" ; then
++ OLDIFS=$IFS; IFS=':;'
++ for p in $VARTEXFONTS ; do
++ test -d $p/pk/ && find $p/pk/ -type f -and -atime +20 -print0
++ test -d $p/tfm/ && find $p/tfm/ -type f -and -atime +60 -print0
++ done > >(exec xargs -r -l100 -0 -- rm -f)
++ IFS=$OLDIFS
++fi
++
++#
++# Update the ls-R's
++#
++mktexlsr > /dev/null
++
++#
++exit 0
+--- conf.d/SuSEconfig.tetex
++++ conf.d/SuSEconfig.tetex Thu Mar 2 16:41:40 2000
+@@ -0,0 +1,261 @@
++#!/bin/bash
++#
++# Copyright (c) 1997 S.u.S.E. Gmbh Fuerth, Germany. All rights reserved.
++#
++# Author: Werner Fink <werner@suse.de>, 1997-99
++#
++
++MKTEXLSR=true
++export MKTEXLSR
++
++type -p mktexlsr &> /dev/null || exit 0
++type -p kpsewhich &> /dev/null || exit 0
++type -p find &> /dev/null || { echo "$0: No find in PATH ... skipping"; exit 0 ; }
++type -p sort &> /dev/null || { echo "$0: No sort in PATH ... skipping"; exit 0 ; }
++type -p env &> /dev/null || { echo "$0: No env in PATH ... skipping"; exit 0 ; }
++type -p sed &> /dev/null || { echo "$0: No sed in PATH ... skipping"; exit 0 ; }
++
++#
++# Re-import the familiar var and conf data
++#
++: ${TEXMFMAIN=`kpsewhich --expand-var='$TEXMFMAIN' | sed 's@^!*@@'`}
++: ${VARTEXMF=` kpsewhich --expand-var='$VARTEXMF' | sed 's@^!*@@'`}
++for x in web2c \
++ dvips/config \
++ pdftex/config \
++ xdvi \
++ tex/generic/config \
++ tex/context/config \
++ etex/plain/config
++do
++ y=${TEXMFMAIN}/${x}
++ z=${VARTEXMF}/${x}
++ test -L ${y} && continue
++ test -d ${y%/*}/ || continue
++ test -d ${z}/ || continue
++ if test -d ${y}/ ; then
++ for y in ${TEXMFMAIN}/${x}/* ; do
++ z=${VARTEXMF}/${x}/${y##*/}
++ test -f $y || continue
++ test -f $z || cp -a $y $z
++ done
++ rm -rf ${TEXMFMAIN}/${x}/
++ fi
++ ln -sf ${VARTEXMF}/${x} ${TEXMFMAIN}/${x}
++done
++if test -d /etc/texmf/dvips/ -a -d ${VARTEXMF}/dvips/config/ ; then
++ for x in /etc/texmf/dvips/* ; do
++ y=${VARTEXMF}/dvips/config/${x##*/}
++ test -f $x || continue
++ test -f $y || cp -a $x $y
++ done
++ rm -rf /etc/texmf/dvips/
++ ln -sf ${VARTEXMF}/dvips/config /etc/texmf/dvips
++fi
++unset x y z
++
++#
++# Straightforward ... here we go
++#
++OLDIFS=$IFS; IFS=':;'
++set -- $(kpsewhich --show-path=ls-R 2> /dev/null)
++IFS=$OLDIFS
++set -- $(find $@ -prune -type d -and -not -fstype nfs 2> /dev/null)
++for f in /var/adm/SuSEconfig/run?texhash; do
++ if test -e $f ; then
++ for lsr ; do
++ test $f -nt $lsr/ls-R && mktexlsr $lsr
++ done
++ fi
++done
++
++#
++# If texmf.cnf has changed it may contains changed memory sizes
++# of various programs.
++#
++type -p readlink &> /dev/null || exit 0
++type -p texconfig &> /dev/null || exit 0
++
++: ${WEB2C=` kpsewhich --expand-var='$WEB2C' | sed 's@^!*@@'`}
++WEB2C=${WEB2C%%:*}
++: ${texmfcnf=`kpsewhich texmf.cnf`}
++test -L $texmfcnf && texmfcnf="`readlink $texmfcnf`"
++
++init=false
++for f in ${WEB2C}/*.fmt ${WEB2C}/*.efmt ${WEB2C}/*.mem ${WEB2C}/*.base ; do
++ test -e $f || continue
++ test -L $f && continue
++ test $texmfcnf -nt $f && init=true
++done
++test $init = true && texconfig init &> /dev/null
++
++#
++# These are required.
++#
++type -p grep &> /dev/null || exit 0
++type -p md5sum &> /dev/null || exit 0
++
++#
++# We need a check for a already modified tetex configuration:
++# therefore we use md5 check sums.
++#
++if test -z "$MD5DIR" ; then
++ LIBDIR=/var/adm/SuSEconfig
++ MD5DIR=$LIBDIR/md5
++fi
++mkdir -p $MD5DIR
++test $? -gt 0 && exit 0
++
++#
++# The main system printer.
++#
++if test -r /etc/printcap -a -d /var/lib/apsfilter/ ; then
++ lp=$(grep -E '^lp\|' /etc/printcap)
++fi
++test -n "$lp" || exit 0 # No (configured) apsfilter system: nothing to do
++
++#
++# The main configuration files of teTeX.
++#
++cnf_mfont=/etc/texmf/modes.mf
++ cnf_xdvi=/etc/texmf/XDvi
++cnf_dvips=/etc/texmf/config.ps
++
++md5_mfont=${MD5DIR}${cnf_mfont}
++ md5_xdvi=${MD5DIR}${cnf_xdvi}
++md5_dvips=${MD5DIR}${cnf_dvips}
++
++#
++# Is this a full teTeX system?
++#
++test -e ${cnf_mfont} || exit 0 # Default MetaFont mode
++test -e ${cnf_xdvi} || exit 0 # Default xdvi resolution
++test -e ${cnf_dvips} || exit 0 # Default printer mode
++
++test /etc/printcap -nt ${cnf_mfont} && prtcap_nt_mfont="yes"
++test /etc/printcap -nt ${cnf_xdvi} && prtcap_nt_xdvi="yes"
++test /etc/printcap -nt ${cnf_dvips} && prtcap_nt_dvips="yes"
++
++#
++# Create m5 backup system
++#
++test -d ${MD5DIR}/etc/texmf/dvips || mkdir -p ${MD5DIR}/etc/texmf/dvips || exit 1
++
++#
++# Current md5 sums
++#
++set -- `cat ${cnf_mfont} | md5sum` ; md5modes="$1"
++set -- `cat ${cnf_xdvi} | md5sum` ; md5xdvi="$1"
++set -- `cat ${cnf_dvips} | md5sum` ; md5dvips="$1"
++
++#
++# Previous md5 sums
++#
++omd5modes=0
++ omd5xdvi=0
++omd5dvips=0
++if test -r ${md5_mfont} ; then
++ test ${md5_mfont} -nt ${cnf_mfont} && md5_nt_mfont="yes"
++ set -- `cat ${md5_mfont}` ; omd5modes="$1"
++fi
++if test -r ${md5_xdvi} ; then
++ test ${md5_xdvi} -nt ${cnf_xdvi} && md5_nt_xdvi="yes"
++ set -- `cat ${md5_xdvi}` ; omd5xdvi="$1"
++fi
++if test -r ${md5_dvips} ; then
++ test ${md5_dvips} -nt ${cnf_dvips} && md5_nt_dvips="yes"
++ set -- `cat ${md5_dvips}` ; omd5dvips="$1"
++fi
++
++#
++# Parse the configured system main printer
++# Ghostscript/PS <-> Metafont mode and paper size
++# (UNTESTED, Sorry I've *not* enough printers around)
++#
++. /etc/rc.config
++case "$lp" in
++ *-letter-*) XDVISIZE=us ; DVIPSSIZE=letter ;;
++ *-legal-*) XDVISIZE=legal ; DVIPSSIZE=legal ;;
++ *-ledger-*) XDVISIZE=a3r ; DVIPSSIZE=ledger ;;
++ *-tabloid-*) XDVISIZE=a3 ; DVIPSSIZE=tabloid ;;
++ *-a3-*) XDVISIZE=a3 ; DVIPSSIZE=a3 ;;
++ *-a4-*) XDVISIZE=a4 ; DVIPSSIZE=a4 ;;
++ *) XDVISIZE=us ; DVIPSSIZE=letter
++ test "$LANGUAGE" != "english" && \
++ { XDVISIZE=a4 ; DVIPSSIZE=a4 ; }
++ ;;
++esac
++
++case "$lp" in
++ *\|PS*) PRINTER=ljfour ;;
++ *\|bj10e*) PRINTER=bjtenex ;;
++ *\|bj200*) PRINTER=bjtzzex ;;
++ *\|bjc600*) PRINTER=canonbjc ;;
++ *\|bjc800*) PRINTER=canonbjc ;;
++ *\|bjc610a*) PRINTER=canonbjc ;;
++# *\|bjc610b*) PRINTER=canonbjc ;;
++ *\|cdeskjet*600) PRINTER=ljfour ;;
++ *\|deskjet*600) PRINTER=ljfour ;;
++ *\|cdeskjet*) PRINTER=deskjet ;;
++ *\|deskjet*) PRINTER=deskjet ;;
++ *\|cdj6*) PRINTER=ljfour ;;
++ *\|cdj8*) PRINTER=ljfour ;;
++ *\|hpdj*) PRINTER=ljfour ;;
++ *\|cdj*600) PRINTER=ljfour ;;
++ *\|djet*600) PRINTER=ljfour ;;
++ *\|cdj*) PRINTER=deskjet ;;
++ *\|djet*) PRINTER=deskjet ;;
++ *\|laserjet*) PRINTER=cx ;;
++ *\|ljetplus*) PRINTER=cx ;;
++ *\|ljet2*) PRINTER=cx ;;
++ *\|ljet3*) PRINTER=jetiiisi ;;
++ *\|ljet4l*) PRINTER=cx ;;
++ *\|ljet4*) PRINTER=ljfour ;;
++ *\|lj4*) PRINTER=ljfour ;;
++ *\|lj5*) PRINTER=ljfive ;;
++# *\|lj5*) PRINTER=ljfivemp ;;
++ *\|stcolor*720) PRINTER=esphi ;;
++ *\|stcolor*) PRINTER=epstylus ;;
++ *\|st800*720) PRINTER=esphi ;;
++ *\|st800*) PRINTER=epstylus ;;
++ *\|stc800*720) PRINTER=esphi ;;
++ *\|stc800*) PRINTER=epstylus ;;
++ *\|stc600*) PRINTER=epscszz ;;
++ *\|stc_h*) PRINTER=esphi ;;
++ *\|stc*) PRINTER=epstypro ;;
++ *) PRINTER=ljfour ;;
++esac
++
++#
++# Run texconfig if no one has update the teTeX system
++# or parts of it.
++#
++
++if test $omd5modes = 0 -o \
++ \( $md5modes = $omd5modes -a "$prtcap_nt_mfont" = "yes" -a "$md5_nt_mfont" = "yes" \)
++then
++ env -i MKTEXLSR=true texconfig mode $PRINTER < /dev/null
++ sleep 1
++ set -- `cat ${cnf_mfont} | md5sum`
++ echo $1 > ${MD5DIR}${cnf_mfont}
++fi
++if test $omd5xdvi = 0 -o \
++ \( $md5xdvi = $omd5xdvi -a "$prtcap_nt_xdvi" = "yes" -a "$md5_nt_xdvi" = "yes" \)
++then
++ env -i MKTEXLSR=true texconfig xdvi $XDVISIZE < /dev/null
++ sleep 1
++ set -- `cat ${cnf_xdvi} | md5sum`
++ echo $1 > ${MD5DIR}${cnf_xdvi}
++fi
++if test $omd5dvips = 0 -o \
++ \( $md5dvips = $omd5dvips -a "$prtcap_nt_dvips" = "yes" -a "$md5_nt_dvips" = "yes" \)
++then
++ env -i MKTEXLSR=true texconfig dvips mode $PRINTER < /dev/null
++ env -i MKTEXLSR=true texconfig dvips paper $DVIPSSIZE < /dev/null
++ sleep 1
++ set -- `cat ${cnf_dvips} | md5sum`
++ echo $1 > ${MD5DIR}${cnf_dvips}
++fi
++
++##
++exit 0
+--- nfs/README
++++ nfs/README Thu Mar 2 14:31:12 2000
+@@ -0,0 +1,35 @@
++
++ TeTeX over NFS for Clients
++ ==========================
++
++
++Four steps are required:
++
++* First (of all of the clients): Do not install any teTeX packages
++ but at least the package te_nfs.
++
++* Second (on the server): Install the teTeX packages your need
++ and add the following 4 lines to /etc/export
++
++ /etc/texmf *.your.domain.here(ro,root_squash)
++ /usr/share/texmf *.your.domain.here(ro,root_squash)
++ /var/lib/texmf *.your.domain.here(ro,root_squash)
++ /var/cache/fonts *.your.domain.here(rw,root_squash)
++
++ and call
++
++ killall -HUP rpc.mountd rpc.nfsd
++
++* Third (of all of the clients): Run the following command:
++
++ tetex-import your.tetex.server.here
++
++ with `your.tetex.server.here' the IP address or full qualified
++ domain name of your teTeX server.
++
++* Fourth (of all of the clients): Add the four lines which the
++ script tetex-import has (hopefully) written to standard out
++ to the file
++
++ /etc/fstab
++
+--- nfs/tetex-import
++++ nfs/tetex-import Thu Mar 2 14:31:12 2000
+@@ -0,0 +1,346 @@
++#!/bin/sh
++#
++# This script imports the teTeX system from the same
++# server from which /usr/share/texmf is mounted (nfs).
++# This script should work with standard bourne shell.
++#
++# Copyright (c) 1998,2000 SuSE GmbH Nuernberg, Germany.
++# please send bugfixes or comments to feedback@suse.de.
++#
++# Author: Werner Fink
++#
++
++test `whoami` = root || { echo "Permission denied" 1>&2 ; exit 1; }
++
++#
++# The teTeX system, main date, variable data, fonts cache,
++# and configuration data.
++#
++texroot=/usr/share/texmf
++texvars=/var/lib/texmf
++texfont=/var/cache/fonts
++texconf=/etc/texmf
++
++#
++# Mount options and Internal Field Separator(s)
++#
++mntopt="exec,nosuid,nodev,hard,bg,intr,rsize=8192,wsize=8192"
++action="import" # otherwise "remove"
++OLDIFS="$IFS"
++NL='
++'
++
++#
++# Remember the options given to us
++#
++we="${0##*/}"
++tab="`echo ${we}:| tr '[:print:]' ' '`"
++argv="$@"
++args=$#
++
++#
++# Place holder for the nfs server(s) of the teTeX system
++#
++server=""
++rootserv=""
++varsserv=""
++fontserv=""
++confserv=""
++etcfstab=""
++num=0
++
++#
++# The current system: architecture, operating system, libc
++#
++ arch="`uname -m| sed 's%i.86%i386%g'`"
++system="`uname -s| tr '[:upper:]' '[:lower:]'`"
++set -- /lib/libc.so.[0-9]
++eval libc=\${${#}##*.}
++if test $libc -ge 6 ; then
++ libc=glibc
++else
++ libc=libc5
++fi
++if test $system = linux ; then
++ binary=$arch-$system-$libc
++else
++ binary=$arch-$system
++fi
++
++#
++# Test the teTeX system: Something is already mounted?
++#
++test_system ()
++{
++ IFS="$NL"
++ set -- `df -P -t nfs`
++ IFS="$OLDIFS"
++ shift
++
++ for line ; do
++ case "$line" in
++ *:${texroot}*) rootserv=${line%%:*} ;;
++ *:${texvars}*) varsserv=${line%%:*} ;;
++ *:${texfont}*) fontserv=${line%%:*} ;;
++ *:${texconf}*) confserv=${line%%:*} ;;
++ *) ;;
++ esac
++ done
++}
++
++#
++# At the first time we may need a mount point,
++# just do it.
++#
++mount_dir ()
++{
++ origin=$1
++ mpoint=$2
++ rwro=$3
++
++ test -d $mpoint || mkdir -p $mpoint
++ set -- `mount -v -t nfs -o ${rwro},$mntopt $origin $mpoint`
++ set -- $1 $3 $5 ${6#"("}
++ if test -n "$1" ; then
++ etcfstab="${etcfstab}`echo $1 $2 $3 ${4%')'} 0 0`\n"
++ num=`expr $num + 1`
++ fi
++}
++
++#
++# Try to mount the system from the server
++#
++mount_system ()
++{
++ test_system
++
++ IFS="$NL"
++ set -- `showmount -e $server`
++ IFS="$OLDIFS"
++
++ for line ; do
++ fs=${server}:${line%%\ *}
++ case "$line" in
++ *${texroot}\ *) test -z "$rootserv" && mount_dir ${fs} ${texroot} ro ;;
++ *${texvars}\ *) test -z "$varsserv" && mount_dir ${fs} ${texvars} ro ;;
++ *${texfont}\ *) test -z "$fontserv" && mount_dir ${fs} ${texfont} rw ;;
++ *${texconf}\ *) test -z "$confserv" && mount_dir ${fs} ${texconf} ro ;;
++ *) ;;
++ esac
++ done
++
++ test_system
++ test -z "$rootserv" && echo "${we}: Warning, can not mount ${texroot}" 1>&2
++ test -z "$varsserv" && echo "${we}: Warning, can not mount ${texvars}" 1>&2
++ test -z "$fontserv" && echo "${we}: Warning, can not mount ${texfont}" 1>&2
++ test -z "$confserv" && echo "${we}: Warning, can not mount ${texconf}" 1>&2
++}
++
++#
++# Umount the teTeX system
++#
++umount_system ()
++{
++ test_system
++ test -n "$rootserv" && umount ${texroot}
++ test -n "$varsserv" && umount ${texvars}
++ test -n "$fontserv" && umount ${texfont}
++ test -n "$confserv" && umount ${texconf}
++}
++
++#
++# Do not overlink/remove existing files or foreign links.
++#
++test_file ()
++{
++ tfl=$1
++ tfp=$2
++ if test -f $tfl -a ! -L $tfl ; then
++ echo "${we}: File $tfl already exists, skipping" 1>&2
++ echo "${tab} $tfp" 1>&2
++ return 1
++ fi
++ if test -L $tfl ; then
++ set -- `ls -iL $tfl $tfp`
++ if test $1 -ne $3 ; then
++ echo -e "${we}:\033[1m WARNING symbolic link $tfl does not have the" 1>&2
++ echo -e "${tab} source $tfp\033[m" 1>&2
++ return 1
++ fi
++ fi
++ return 0
++}
++
++#
++# Integrate the binaries, manual pages, and info descriptions
++# into the normal file system hierarchy.
++#
++linkin ()
++{
++ relbin=`relpath ${texroot}/teTeX/bin/$binary /usr/bin`
++ for prg in ${texroot}/teTeX/bin/$binary/* ; do
++ lprg=/usr/bin/${prg##*/}
++ test -x $prg || continue
++ test_file $lprg $prg || continue
++ rm -f $lprg
++ ln -sf $relbin/${prg##*/} $lprg
++ done
++ relman=`relpath ${texroot}/teTeX/man/man1 /usr/share/man/man1`
++ for man in ${texroot}/teTeX/man/man1/*.1* ; do
++ lman=/usr/share/man/man1/${man##*/}
++ test -f $man || continue
++ test_file $lman $man || continue
++ rm -f $lman
++ ln -sf $relman/${man##*/} $lman
++ done
++ relinf=`relpath ${texroot}/teTeX/info /usr/share/info`
++ for inf in ${texroot}/teTeX/info/*info* ; do
++ linf=/usr/share/info/${inf##*/}
++ test -f $inf || continue
++ test_file $linf $inf || continue
++ rm -f $linf
++ ln -sf $relinf/${inf##*/} $linf
++ done
++}
++
++#
++# Deintegrate the binaries, manual pages, and info descriptions.
++#
++linkout ()
++{
++ for prg in ${texroot}/teTeX/bin/$binary/* ; do
++ lprg=/usr/bin/${prg##*/}
++ test -x $prg || continue
++ test_file $lprg $prg || continue
++ rm -f $lprg
++ done
++ for man in ${texroot}/teTeX/man/man1/*.1* ; do
++ lman=/usr/share/man/man1/${man##*/}
++ test -f $man || continue
++ test_file $lman $man || continue
++ rm -f $lman
++ done
++ for inf in ${texroot}/teTeX/info/*info* ; do
++ linf=/usr/share/info/${inf##*/}
++ test -f $inf || continue
++ test_file $linf $inf || continue
++ rm -f $linf
++ done
++}
++
++#
++# This calculates the relative path of the source path
++# which depends on the destination path. The function
++# takes two arguments:
++#
++# the full directory path to the source file/dir
++# the full directory path to the destination file/dir
++#
++# both without the file or directory name its self.
++#
++# Author: Werner Fink
++#
++relpath ()
++{
++ # called by linkin: top down
++ IFS='/'
++ orgwords="`echo ${1}`"
++ locwords="`echo ${2}`"
++ IFS="$OLDIFS"
++
++ newpath=""
++ symlink="$2"
++ relp=0
++ deep=0
++ set -- `echo $locwords`
++ for p in $orgwords ; do
++ deep=`expr $deep + 1`
++ eval l=\${$deep}
++ if test "$l" = "$p" -a $relp -eq 0 ; then
++ : nothing
++ else
++ relp=`expr $relp + 1`
++ newpath="${newpath}/$p"
++ if test -n "$l" ; then
++ if test $relp -eq 1 ; then
++ newpath="..${newpath}"
++ else
++ newpath="../${newpath}"
++ fi
++ fi
++ fi
++ done
++ if test $deep -lt $# ; then
++ shift $deep
++ while test $# -gt 0 ; do
++ newpath="../${newpath}"
++ shift
++ done
++ fi
++ echo $newpath
++}
++
++#
++# Usage
++#
++usage ()
++{
++ echo "${we}: Usage:" 1>&2
++ echo "${tab} ${we} <NFS server of TeTeX> [-i|-d] -[o <mount options>]" 1>&2
++}
++
++#
++# Option handling goes here
++#
++set -- $argv
++while test -n "$1" ; do
++ case "$1" in
++ -o) test -z "$2" && { usage ; exit 1; }
++ mntopt="$2" ;;
++ -m) test -z "$2" && { usage ; exit 1; }
++ binary="$2" ;;
++ -i) action="import" ;;
++ -d) action="remove" ;;
++ -h) usage ; exit 0 ;;
++ -*) usage ; exit 1 ;;
++ *) server="$1" ;;
++ esac
++ shift
++done
++
++test -z "$server" && { usage ; exit 1; }
++
++if test "$action" = "import" ; then
++ mount_system
++ linkin
++ if test -n "${etcfstab}" ; then
++ echo -e "\033[1m${we}: Please add the following $num lines to /etc/fstab\033[m" 1>&2
++ echo
++ echo -e "${etcfstab}"
++ sleep 2
++ fi
++elif test "$action" = "remove" ; then
++ linkout
++ umount_system
++ while read line ; do
++ set -- $line
++ case "$1 $2 $3 $4 $5 $6" in
++ *:${texroot}\ *) etcfstab="${etcfstab}`echo $line`\n" ;;
++ *:${texvars}\ *) etcfstab="${etcfstab}`echo $line`\n" ;;
++ *:${texfont}\ *) etcfstab="${etcfstab}`echo $line`\n" ;;
++ *:${texconf}\ *) etcfstab="${etcfstab}`echo $line`\n" ;;
++ esac
++ done < /etc/fstab
++ if test -n "${etcfstab}" ; then
++ echo -e "\033[1m${we}: Please remove the following lines from /etc/fstab\033[m" 1>&2
++ echo
++ echo -e "${etcfstab}"
++ sleep 2
++ fi
++else
++ echo "${we}: Ohmm ... something strange happens" 1>&2
++ exit 1
++fi
++
++##
++exit 0
+--- nfs/tetex-import.8
++++ nfs/tetex-import.8 Thu Mar 2 14:31:12 2000
+@@ -0,0 +1,68 @@
++.\"
++.\"
++.TH tetex-import 8 "October22, 1998" "Version 0.1" "Utility for teTeX"
++.\"
++.UC 8
++.SH NAME
++.\"
++tetex-import \- Utility for teTeX integration over NFS
++.SH SYNOPSIS
++.\"
++.B tetex-import teTeX_NFS_server
++.RB [\| \-i \||\| \-d ]
++.RB [\| \-o " " mount_options ]
++.RB [\| \-m " " machine_binary_type ]
++.\" Die Beschreibung
++.SH DESCRIPTION
++The script
++.B tetex-import
++helps at the integration of a remote teTeX
++system into the local system over NFS.
++.\"
++.SS General Options
++.TP
++.IR teTeX_NFS_server
++This is the name or IP address of the NFS server providing
++the teTeX system.
++.TP
++.IR \-i
++Integrate the teTeX system (default). After mounting
++and setting all required symbolic links upto four
++lines are written to standard out. These lines should
++be added to
++.BR /etc/fstab .
++.TP
++.IR \-d
++Deintegration of the teTeX system. After removing
++all required symbolic links and unmounting the teTeX system
++a few lines are written to standard out. These lines
++should be removed from
++.BR /etc/fstab .
++.TP
++.IR \-o\ mount_options
++Use these mount options instead of the default
++.IR exec,nosuid,nodev,hard,bg,intr,rsize=8192,wsize=8192 .
++.TP
++.IR \-m\ machine_binary_type
++Use this machine binary type. Default is
++.IR arch-system-libc .
++Some example: i386-linux-libc5, i386-linux-glibc.
++.IP
++.\"
++.SH EXAMPLE
++.PP
++.B tetex-import tex.mydomain
++.\"
++.SH FILES
++.BR /usr/share/texmf/ ,
++.br
++.BR /var/lib/texmf/ ,
++.br
++.BR /var/cache/fonts/ ,
++.br
++.BR /etc/texmf/
++.\"
++.SH SEE ALSO
++.BR fstab (8),
++.BR mount (8),
++.BR nfs (8).
+--- profile.d/tetex.csh
++++ profile.d/tetex.csh Thu Mar 2 14:31:12 2000
+@@ -0,0 +1,25 @@
++#
++# /etc/profile.d/tetex.csh
++#
++
++#
++# Expand TEXINPUTS
++#
++if ( -d ${HOME}/TeX/ ) then
++ #
++ # Hmmm ... texmf/ should be used instead of TeX/
++ #
++ if ( ${?TEXINPUTS} ) then
++ setenv TEXINPUTS ${TEXINPUTS}:${HOME}/TeX//:
++ else
++ setenv TEXINPUTS ${HOME}/TeX//:
++ endif
++endif
++if ( -d /usr/doc/.TeX/ ) then
++ if ( ${?TEXINPUTS} ) then
++ setenv TEXINPUTS ${TEXINPUTS}:/usr/doc/.TeX:
++ else
++ setenv TEXINPUTS /usr/doc/.TeX:
++ endif
++endif
++
+--- profile.d/tetex.sh
++++ profile.d/tetex.sh Thu Mar 2 14:31:12 2000
+@@ -0,0 +1,25 @@
++#
++# /etc/profile.d/tetex.sh
++#
++
++#
++# Expand TEXINPUTS
++#
++if test -d $HOME/TeX/ ; then
++ #
++ # Hmmm ... texmf/ should be used instead of TeX/
++ #
++ if test -n "$TEXINPUTS" ; then
++ TEXINPUTS="$TEXINPUTS:$HOME/TeX//:"
++ else
++ TEXINPUTS="$HOME/TeX//:"
++ fi
++fi
++if test -d /usr/doc/.TeX/ ; then
++ if test -n "$TEXINPUTS" ; then
++ TEXINPUTS="$TEXINPUTS:/usr/doc/.TeX:"
++ else
++ TEXINPUTS="/usr/doc/.TeX:"
++ fi
++fi
++
+--- texk/dviljk/dvi2xx.c
++++ texk/dviljk/dvi2xx.c Thu Mar 2 14:31:12 2000
+@@ -175,7 +175,18 @@
+ setbuf(ERR_STREAM, NULL);
+ (void) strcpy(G_progname, argv[0]);
+ #ifdef KPATHSEA
+- kpse_set_progname(argv[0]);
++#if defined(LJ)
++ kpse_set_program_name (argv[0], "dvilj");
++#endif
++#if defined(LJ2P)
++ kpse_set_program_name (argv[0], "dvilj2p");
++#endif
++#if defined(LJ4) && !defined(LJ4L)
++ kpse_set_program_name (argv[0], "dvilj4");
++#endif
++#if defined(LJ4) && defined(LJ4L)
++ kpse_set_program_name (argv[0], "dvilj4l");
++#endif
+ kpse_set_program_enabled (kpse_pk_format, MAKE_TEX_PK_BY_DEFAULT, kpse_src_compile);
+ #endif
+ DecodeArgs(argc, argv);
+--- texk/kpathsea/Makefile.in
++++ texk/kpathsea/Makefile.in Thu Mar 2 14:31:12 2000
+@@ -128,6 +128,7 @@
+ | sed -e 's%\$$TEXMFMAIN%$(texmf)%g' \
+ -e 's%\$$TEXMF%$(texmf)%g' \
+ -e 's%\$$VARTEXFONTS%$(vartexfonts)%g' \
++ -e 's%\$$VARTEXMF%$(vartexmf)%g' \
+ -e 's%\$$web2cdir%$(web2cdir)%g' \
+ -e 's%\$$prefix%$(prefix)%g' \
+ | sed -e 's%;%:%g' \
+--- texk/kpathsea/c-memstr.h
++++ texk/kpathsea/c-memstr.h Thu Mar 2 14:31:12 2000
+@@ -35,6 +35,9 @@
+
+ /* Just to be complete, we make both the system V/ANSI and the BSD
+ versions of the string functions available. */
++
++#ifndef __GNUC__
++
+ /* FIXME: we'll move to providing the ANSI stuff, if necessary defined
+ in terms of the BSD functions. */
+ #if !defined(HAVE_INDEX) && !defined(index)
+@@ -78,6 +81,8 @@
+ #ifndef strstr
+ extern char *strstr ();
+ #endif
++
++#endif /* not __GNUC__ */
+ #endif
+
+ #endif /* not KPATHSEA_C_MEMSTR_H */
+--- texk/kpathsea/db.c
++++ texk/kpathsea/db.c Thu Mar 2 14:31:12 2000
+@@ -80,12 +80,21 @@
+ unsigned len = strlen (db_filename) - sizeof (DB_NAME) + 1; /* Keep the /. */
+ string top_dir = xmalloc (len + 1);
+ string cur_dir = NULL; /* First thing in ls-R might be a filename. */
+- FILE *db_file = fopen (db_filename, FOPEN_R_MODE);
++ struct stat statdb;
++ FILE *db_file;
+
+ strncpy (top_dir, db_filename, len);
+ top_dir[len] = 0;
+-
+- if (db_file) {
++
++ if ((getenv("MKTEXLSR") == NULL) &&
++ (stat(db_filename, &statdb) < 0 || statdb.st_size == 0)) {
++ char buf[PATH_MAX+1];
++ snprintf(buf, PATH_MAX, "mktexlsr %s", top_dir);
++ xputenv("MKTEXLSR", "true"); /* fork loop detection */
++ system (buf);
++ }
++
++ if ((db_file = fopen (db_filename, FOPEN_R_MODE))) {
+ while ((line = read_line (db_file)) != NULL) {
+ len = strlen (line);
+
+--- texk/kpathsea/mktex.opt
++++ texk/kpathsea/mktex.opt Thu Mar 2 14:31:12 2000
+@@ -62,6 +62,11 @@
+ echo "$0: VARTEXFONTS is not defined. Defaulting to \`$KPSE_DOT'." >&2
+ MT_VARTEXFONTS='$KPSE_DOT'
+ fi
++: ${MT_VARTEXMF=`kpsewhich --expand-var='$VARTEXMF' | sed 's%^!!%%'`}
++if test -z "$MT_VARTEXMF"; then
++ echo "$0: VARTEXMF is not defined. Defaulting to \`$KPSE_DOT'." >&2
++ MT_VARTEXMF='$KPSE_DOT'
++fi
+
+ # The supporting scripts:
+ : ${MT_MKTEXNAM=`kpsewhich --format='web2c files' mktexnam`}
+--- texk/kpathsea/mktexlsr
++++ texk/kpathsea/mktexlsr Thu Mar 2 14:31:12 2000
+@@ -15,6 +15,10 @@
+
+ version='$Id: teTeX-1.0.dif,v 1.1 2000/10/19 16:03:41 achim Exp $'
+ progname=`echo $0 | sed 's%.*/%%'`
++
++MKTEXLSR=true; export MKTEXLSR
++set -o noclobber
++
+ usage="Usage: $progname [DIRS ...]
+
+ Rebuild all necessary ls-R filename databases completely. If one or
+@@ -62,6 +66,7 @@
+ test $# = 0 && {
+ OIFS=$IFS; IFS=$SEP; set x `kpsewhich --show-path=ls-R 2>/dev/null`; shift; IFS=$OIFS
+ }
++cache="`kpsewhich --expand-var='$VARTEXFONTS'`"
+ for TEXMFLS_R in "$@"; do
+ # Prepend cwd if the directory was relative.
+ case "$TEXMFLS_R" in
+@@ -80,12 +85,21 @@
+ db_dir=`echo "$db_file" | sed 's%/[^/][^/]*$%%'` # can't rely on dirname
+
+ test -d "$db_dir" || continue
+- test -w "$db_dir" || { echo "$progname: $db_dir: directory not writable. Skipping..." >&2; continue; }
++ if test -w "$db_dir" ; then
++ # default
++ db_dir_tmp="$db_dir/.lsR$$.$RANDOM"
++ else
++ # Escape to writable cache directory
++ test -w "$cache" || { echo "$progname: $db_dir: directory not writable. Skipping..." >&2; continue; }
++ db_dir_tmp="$cache/.lsR$$.$RANDOM"
++ fi
+
+ if test ! -f "$db_file"; then
+ cp /dev/null "$db_file"
+ # Use same permissions as parent directory, minus x,s, or t bits.
+ chmod `kpsestat -xst "$db_dir"` "$db_file"
++ elif test -w $db_file -a ! -s $db_file ; then
++ : Is writable but empty
+ elif test "x`sed 1q \"$db_file\"`" != "x$ls_R_magic" \
+ && test "x`sed 1q \"$db_file\"`" != "x$old_ls_R_magic"; then
+ echo "$progname: $db_file lacks magic string. Skipping..." >&2
+@@ -95,7 +109,6 @@
+ # Skip if we cannot write the file:
+ access -w "$db_file" || { echo "$progname: $db_file: no write permission. Skipping..." >&2; continue; }
+
+- db_dir_tmp="$db_dir/lsR$$.tmp"
+ mkdir "$db_dir_tmp" \
+ || { echo "$progname: could not create directory '$db_dir_tmp'. Skipping..." >&2; continue; }
+ db_file_tmp="$db_dir_tmp/lsR$$.tmp"
+@@ -111,13 +124,23 @@
+ # names results in nothing but grief.
+ echo "./:" >>"$db_file_tmp"
+ (cd "$TEXMFLS_R" && \ls -LRa 2>/dev/null) |
+- sed 's%^[^.].*:$%./&%; /^\.$/d; /^\.\.$/d; /^lsR[0-9]*\.tmp$/d' >>"$db_file_tmp"
++ sed '/^\(\.\|\.\/\.\)\?lsR[0-9]\+\.\(tmp\|[0-9]\+\):\?/d
++ /^\.:\?$/d
++ /^\.\.$/d
++ s%^[^.].*:$%./&%' >> "$db_file_tmp"
+
+ # To be really safe, a loop.
+ until PERMS=`kpsestat = "$db_file"`; do sleep 1; done
+ chmod $PERMS "$db_file_tmp"
+- rm -f "$db_file"
+- mv "$db_file_tmp" "$db_file"
++ if rm -f "$db_file" > /dev/null 2>&1 ; then
++ # Sticky bit is not set
++ mv "$db_file_tmp" "$db_file"
++ else
++ # Sticky bit is set
++ set +o noclobber
++ cat "$db_file_tmp" > "$db_file"
++ set -o noclobber
++ fi
+ rm -rf "$db_dir_tmp"
+ done
+ tty -s && echo "$progname: Done."
+--- texk/kpathsea/texmf.in
++++ texk/kpathsea/texmf.in Thu Mar 2 14:31:12 2000
+@@ -58,14 +58,17 @@
+ TEXMFMAIN = @texmf@
+
+ % A place for local additions to a "standard" texmf tree. For example:
+-% TEXMFLOCAL = @texmf@.local
++TEXMFLOCAL = /usr/local/share/texmf
++
++% Old teTeX path of SuSE.
++OLDTEXMF = /usr/lib/teTeX/texmf
+
+ % If defined, teTeX's texconfig stores modifications here (instead of the
+ % TEXMFMAIN tree).
+-% VARTEXMF = @texmf@-var
++VARTEXMF = @vartexmf@
+
+ % User texmf trees can be catered for like this...
+-% HOMETEXMF = $HOME/texmf
++HOMETEXMF = $HOME/texmf
+
+ % Now, list all the texmf trees. If you have multiple trees you can
+ % use shell brace notation, like this:
+@@ -73,10 +76,11 @@
+ % The braces are necessary. If you set VARTEXMF, you also have to
+ % - list $VARTEXMF in the TEXMF definition;
+ % - make sure that $VARTEXMF precedes $TEXMFMAIN in the TEXMF definition.
+-TEXMF = !!$TEXMFMAIN
++% Note: @texmf@/local is a sub directory of TEXMFMAIN
++TEXMF = {$HOMETEXMF,!!${TEXMFLOCAL},!!$VARTEXMF,!!$TEXMFMAIN,!!$OLDTEXMF}
+
+ % The system trees. These are the trees that are shared by all the users.
+-SYSTEXMF = $TEXMF
++SYSTEXMF = ${TEXMFLOCAL};$VARTEXMF;$TEXMFMAIN;$OLDTEXMF
+
+ % Where generated fonts may be written. This tree is used when the sources
+ % were found in a system tree and either that tree wasn't writable, or the
+@@ -88,7 +92,7 @@
+ %
+ % Remove $VARTEXFONTS from TEXMFDBS if the VARTEXFONTS directory is below
+ % one of the TEXMF directories (avoids overlapping ls-R files).
+-TEXMFDBS = $TEXMF;$VARTEXFONTS
++TEXMFDBS = $HOMETEXMF;${TEXMFLOCAL};$VARTEXMF;$TEXMFMAIN;$OLDTEXMF;$VARTEXFONTS
+
+ % It may be convenient to define TEXMF like this:
+ % TEXMF = {$HOMETEXMF,!!$TEXMFLOCAL,!!$TEXMFMAIN,$HOME}
+@@ -116,7 +120,7 @@
+
+ % WEB2C is for Web2C specific files. The current directory may not be
+ % a good place to look for them.
+-WEB2C = $TEXMF/web2c
++WEB2C = $VARTEXMF/web2c;$TEXMF/web2c
+
+ % TEXINPUTS is for TeX input files -- i.e., anything to be found by \input
+ % or \openin, including .sty, .eps, etc.
+@@ -193,12 +197,12 @@
+ % and string pools (.pool) for ini{tex,mf,mp}. It is silly that we have six
+ % paths and directories here (they all resolve to a single place by default),
+ % but historically ...
+-TEXFORMATS = .;$TEXMF/web2c
+-MFBASES = .;$TEXMF/web2c
+-MPMEMS = .;$TEXMF/web2c
+-TEXPOOL = .;$TEXMF/web2c
+-MFPOOL = .;$TEXMF/web2c
+-MPPOOL = .;$TEXMF/web2c
++TEXFORMATS = .;$WEB2C
++MFBASES = .;$WEB2C
++MPMEMS = .;$WEB2C
++TEXPOOL = .;$WEB2C
++MFPOOL = .;$WEB2C
++MPPOOL = .;$WEB2C
+
+ % Device-independent font metric files.
+ VFFONTS = .;$TEXMF/fonts/vf//
+@@ -259,12 +263,15 @@
+ % For xdvi to find mime.types and .mailcap, if they do not exist in
+ % $HOME. These are single directories, not paths.
+ % (But the default mime.types, at least, may well suffice.)
+-MIMELIBDIR = @prefix@/etc
+-MAILCAPLIBDIR = @prefix@/etc
++MIMELIBDIR = /etc
++MAILCAPLIBDIR = /etc
+
+ % TeX documentation and source files, for use with kpsewhich.
+ TEXDOCS = .;$TEXMF/doc//
+ TEXSOURCES = .;$TEXMF/source//
++TEXDOCSSUFFIX = .dvi;.ps;.html;.txt
++TEXDOCSCOMPRESS = ;.gz;.bz2;.zip;.Z
++TEXDOCEXT = {$TEXDOCSSUFFIX}{$TEXDOCSCOMPRESS}
+
+ % Omega-related fonts and other files. The odd construction for OFMFONTS
+ % makes it behave in the face of a definition of TFMFONTS. Unfortunately
+@@ -295,8 +302,7 @@
+ %
+ % For security reasons, it is better not to have . part of the path.
+ %
+-TEXMFCNF = {$SELFAUTOLOC,$SELFAUTODIR,$SELFAUTOPARENT}{,{/share,}/texmf{.local,}/web2c};$TETEXDIR;$TEXMF/web2c;@web2c@
+-
++TEXMFCNF = /etc/texmf:$VARTEXMF/web2c:@web2c@:/.$TETEXDIR
+
+
+ % Part 2: Non-path options.
+@@ -374,7 +380,8 @@
+ % For the vast majority of documents, 60000 or less will do.
+ %
+ main_memory.context = 1100000
+-main_memory = 263000 % words of inimemory available; also applies to inimf&mp
++main_memory.jadetex = 499999
++main_memory = 383999 % words of inimemory available; also applies to inimf&mp
+ extra_mem_top = 0 % extra high memory for chars, tokens, etc.
+ extra_mem_bot = 0 % extra low memory for boxes, glue, breakpoints, etc.
+
+@@ -387,19 +394,21 @@
+ % Extra space for the hash table of control sequences (which allows 10K
+ % names as distributed).
+ hash_extra.context = 25000
+-hash_extra = 0
++hash_extra.jadetex = 25000
++hash_extra = 15000
+
+ % Max number of characters in all strings, including all error messages,
+ % help texts, font names, control sequences. These values apply to TeX and MP.
+ pool_size.context = 750000
+-pool_size = 125000
++pool_size.jadetex = 500000
++pool_size = 250000
+ % Minimum pool space after TeX/MP's own strings; must be at least
+ % 25000 less than pool_size, but doesn't need to be nearly that large.
+ string_vacancies.context = 45000
+ string_vacancies = 25000
+ % Maximum number of strings.
+ max_strings.context = 55000
+-max_strings = 15000
++max_strings = 30000
+ % min pool space left after loading .fmt
+ pool_free.context = 47500
+ pool_free = 5000
+@@ -430,6 +439,7 @@
+ max_in_open = 15 % simultaneous input files and error insertions
+ param_size.context = 1500
+ param_size = 500 % simultaneous macro parameters
++save_size.jadetex = 15000
+ save_size.context = 5000
+ save_size = 4000 % for saving values outside current group
+ stack_size.context = 1500
+--- texk/make/makevars.mk
++++ texk/make/makevars.mk Thu Mar 2 14:31:12 2000
+@@ -5,8 +5,9 @@
+ bindir=$(bindir) scriptdir=$(scriptdir) libdir=$(libdir) \
+ datadir=$(datadir) infodir=$(infodir) includedir=$(includedir) \
+ manext=$(manext) mandir=$(mandir) \
+- texmf=$(texmf) web2cdir=$(web2cdir) vartexfonts=$(vartexfonts)\
+- texinputdir=$(texinputdir) mfinputdir=$(mfinputdir) mpinputdir=$(mpinputdir)\
++ texmf=$(texmf) web2cdir=$(web2cdir) \
++ vartexmf=$(vartexmf) vartexfonts=$(vartexfonts) \
++ texinputdir=$(texinputdir) mfinputdir=$(mfinputdir) mpinputdir=$(mpinputdir) \
+ fontdir=$(fontdir) fmtdir=$(fmtdir) basedir=$(basedir) memdir=$(memdir) \
+ texpooldir=$(texpooldir) mfpooldir=$(mfpooldir) mppooldir=$(mppooldir) \
+ dvips_plain_macrodir=$(dvips_plain_macrodir) \
+--- texk/make/paths.mk
++++ texk/make/paths.mk Thu Mar 2 14:31:12 2000
+@@ -45,8 +45,13 @@
+ # The root of the main tree.
+ texmf = @texmfmain@
+
+-# The directory used by varfonts.
+-vartexfonts = /var/tmp/texfonts
++# FHS-2.0 requires /var/cache/fonts, we need also a rw dir /var/lib/texmf
++# for formats and other variable data. It should be possible to
++# have a ro /usr/share.
++## The directory used by varfonts.
++## vartexfonts = /var/tmp/texfonts
++vartexmf = /var/lib/texmf
++vartexfonts = /var/cache/fonts
+
+ # Regular input files.
+ texinputdir = $(texmf)/tex
+--- texk/oxdvik/oxdvi-sh
++++ texk/oxdvik/oxdvi-sh Thu Mar 2 14:31:12 2000
+@@ -45,4 +45,19 @@
+ XFILESEARCHPATH="$xdviapppath:${XFILESEARCHPATH-%D}"; export XFILESEARCHPATH
+ fi
+
+-exec oxdvi.bin $NAMEOPT ${1+"$@"}
++uncompress=
++filename="${1+"$@"}"
++case "${filename}" in
++ *.gz) uncompress="gzip -d -c $filename" ;;
++ *.bz2) uncompress="bzip2 -d -c $filename" ;;
++esac
++if test -n "$uncompress" -a -r "$filename" ; then
++ filename="${filename##*/}"
++ tmpfile="`mktemp ${TMPDIR-/tmp}/${filename%.*}.XXXXXX`" || exit 1
++ trap 'rm -f $tmpfile' 0 1 2 3 6 13 15
++ $uncompress > $tmpfile
++ oxdvi.bin $NAMEOPT $tmpfile || exit 1
++ exit 0
++else
++ exec oxdvi.bin $NAMEOPT ${1+"$@"}
++fi
+--- texk/ps2pkm/pk2bm.c
++++ texk/ps2pkm/pk2bm.c Thu Mar 2 14:31:12 2000
+@@ -42,8 +42,7 @@
+ quarterword lsbf();
+ void dots();
+ chardesc cd;
+- char *myname = "pk2bm", *pkname;
+- int atoo(char *);
++ char *myname = "pk2bm", *pkname, *endptr;
+
+ while (--argc > 0 && (*++argv)[0] == '-') {
+ done=0;
+@@ -51,26 +50,36 @@
+ switch (c) {
+ case 'c':
+ if (*++argv[0] == '\0') {
+- argc--; argv++;
++ if (--argc == 0) {
++err:
++ printf("%s: illegal value for option %c\n", myname, c);
++ exit(1);
++ }
++ argv++;
+ }
+ C = *argv[0];
+ done = 1; break;
+ case 'o':
+ if (*++argv[0] == '\0') {
+- argc--; ++argv;
++ if (--argc == 0) goto err;
++ ++argv;
+ }
+- C = atoo(argv[0]);
++ C = strtol(argv[0], &endptr, 8);
++ if (endptr==argv[0] || *endptr) goto err;
+ done = 1; break;
+ case 'H':
+ if (*++argv[0] == '\0') {
+- argc--; argv++;
++ if (--argc == 0) goto err;
++ argv++;
+ }
+- h = atoi(argv[0]);
++ h = strtol(argv[0], &endptr, 10);
++ if (endptr==argv[0] || *endptr) goto err;
+ done=1;
+ break;
+ case 'W':
+ if (*++argv[0] == '\0') {
+- argc--; argv++;
++ if (--argc == 0) goto err;
++ argv++;
+ }
+ w = atoi(argv[0]);
+ done=1;
+@@ -87,7 +96,7 @@
+ }
+ }
+
+- if (argc == 0) {
++ if (argc != 1) {
+ printf("Usage: %s [-bh] {-c char|-o octchar} [-W width -H height] pkfile\n", myname);
+ exit(1);
+ }
+@@ -199,8 +208,3 @@
+ }
+ }
+
+-int atoo(char *oct)
+-{ int octal = 0;
+- while (*oct != '\0') octal = 8*octal + (*oct++) - '0';
+- return octal & 0xff;
+-}
+--- texk/tetex/Makefile.in
++++ texk/tetex/Makefile.in Thu Mar 2 14:31:12 2000
+@@ -5,9 +5,14 @@
+ ac_include ../make/common.mk
+ ac_include ../make/programs.mk
+
+-SCRIPTS= dvi2fax ps2frag texconfig dvired pslatex texi2html allcm allneeded fontexport fontimport kpsetool mkfontdesc MakeTeXPK fontinst rubibtex rumakeindex fmtutil texdoc texlinks texutil texexec texshow
++#
++# texi2html is part of the SuSE package texinfo
++#
++#SCRIPTS= dvi2fax ps2frag texconfig dvired pslatex texi2html allcm allneeded fontexport fontimport kpsetool mkfontdesc MakeTeXPK fontinst rubibtex rumakeindex fmtutil texdoc texlinks texutil texexec texshow
++SCRIPTS= dvi2fax ps2frag texconfig dvired pslatex allcm allneeded fontexport fontimport kpsetool mkfontdesc MakeTeXPK fontinst rubibtex rumakeindex fmtutil texdoc texlinks texutil texexec texshow
+ PDFSCRIPTS=e2pall epstopdf texi2pdf thumbpdf
+-manpgs=texi2html texconfig ps2frag allcm allneeded dvired fontexport fontimport allec
++#manpgs=texi2html texconfig ps2frag allcm allneeded dvired fontexport fontimport allec
++manpgs=texconfig ps2frag allcm allneeded dvired fontexport fontimport allec
+ INFOFILES= latex.info latex.info-1 latex.info-2 latex.info-3
+ all: $(SCRIPTS) $(PDFSCRIPTS)
+ default: all
+--- texk/tetex/dvi2fax
++++ texk/tetex/dvi2fax Mon Jul 3 15:07:19 2000
+@@ -21,10 +21,10 @@
+ echo "Example: $progname foo -l 2"
+ }
+
+-dvipsconf=dfaxhigh; res=204x196
++dvipsconf=dfaxhigh; gsdev=dfaxhigh
+ case $1 in
+- -hi) dvipsconf=dfaxhigh; res=204x196; shift;;
+- -lo) dvipsconf=dfaxlo; res=204x98; shift;;
++ -hi) gsdev=dfaxhigh; shift;;
++ -lo) gsdev=dfaxlow ; shift;;
+ esac
+
+ case $# in
+@@ -33,5 +33,5 @@
+ esac
+
+ NAME=`basename $1 .dvi`
+-dvips "$@" -P$dvipsconf -f |
+- gs -q -dSAFER -sDEVICE=faxg3 -r$res -sOutputFile=$NAME-%03d.fax -sNOPAUSE -
++dvips "$@" -P$dvipsconf -f | \
++ gs -q -dSAFER -sDEVICE=$gsdev -sOutputFile=$NAME-%03d.fax -sNOPAUSE -
+--- texk/tetex/fmtutil
++++ texk/tetex/fmtutil Thu Mar 2 14:31:12 2000
+@@ -194,9 +194,10 @@
+ : ${KPSE_DOT=$thisdir}
+ TEXINPUTS="$thisdir:$TEXINPUTS"
+ fi
+- tmpdir=${TMP-/tmp}/$progname.$$
+- trap 'cd /; cd "$thisdir"; rm -rf "$tmpdir"; exit 0' 0 1 2 3 7 13 15
+- mkdir "$tmpdir" || abort "could not create directory \`$tmpdir'"
++ tmpdir=${TMPDIR-/tmp}/$progname$$.$RANDOM
++ trap 'cd /; cd "$thisdir"; rm -rf "$tmpdir"; exit 0' 0
++ trap 'cd /; cd "$thisdir"; rm -rf "$tmpdir"; exit 1' 1 2 3 7 13 15
++ mkdir -m 0700 "$tmpdir" || abort "could not create directory \`$tmpdir'"
+ cd "$tmpdir" || exit 1
+
+ # make local paths absolute:
+--- texk/tetex/texconfig
++++ texk/tetex/texconfig Thu Mar 2 14:31:12 2000
+@@ -34,7 +34,7 @@
+ # You may override DIALOG_TERMINFO and DIALOG_TERM in your environment.
+
+ progname=`basename $0`
+-tmpdir=${TMP-/tmp}/texconf$$
++tmpdir=${TMPDIR-/tmp}/texconf$$.$RANDOM
+ tmpmenu=$tmpdir/menu.out
+ tmpans=$tmpdir/answer.out
+ std_pager=more
+@@ -139,7 +139,7 @@
+ {
+ test -z "$NO_CLEAR" && clear
+ if $own_dialog; then
+- $DIALOG_PROG --title "$version setup utility" "$@"
++ $DIALOG_PROG --backtitle "$version setup utility" --title "$version setup utility" "$@"
+ else
+ TERM=$DIALOG_TERM TERMINFO=$DIALOG_TERMINFO dialog --title "$version setup utility" "$@"
+ fi
+@@ -1477,12 +1477,24 @@
+ /*) ;;
+ *) helpindex=$doc/$helpindex;;
+ esac
+- \mv -f $helpindex $helpindex.BAK
++ VARTEXMF=`kpsewhich --expand-var '$VARTEXMF' 2> /dev/null`
++ if test -n "$VARTEXMF" -a -d $VARTEXMF/doc/
++ then
++ mv -f $helpindex $VARTEXMF/doc/helpindex.BAK
++ else
++ mv -f $helpindex $helpindex.BAK
++ fi
++ # Catch alternated screen switch, e.g. for xterm
++ rmcup=""
++ sed=""
++ test -n "`type -p tput`" && rmcup="`tput rmcup|sed 's@\[@\\\[@g'`"
++ test -n "$rmcup" && sed="| sed 's@$rmcup@@g'"
+ # Warn the user it's going to take a while
+- run_dialog --infobox \
+- "This could take some time, please wait." \
+- 3 80
++ eval run_dialog --infobox \
++ \"This could take some time, please wait.\" \
++ 3 80 $sed
+ ./mkhtml > $helpindex 2>> $log
++ test -n "$rmcup" && { tput rmcup ; tput sgr0 ; }
+ )
+ else
+ clear
+@@ -1686,9 +1698,10 @@
+ locate_files
+
+ test -d $tmpdir && { echo "$tmpdir: directory already exists."; exit; }
+-trap 'cd / ; rm -rf $tmpdir; trap '' 0; exit 0' 0 1 2 6 13 15
+-mkdir $tmpdir || exit
+-cd $tmpdir || exit
++trap 'cd / ; rm -rf $tmpdir; trap '' 0; exit 0' 0
++trap 'cd / ; rm -rf $tmpdir; trap '' 0; exit 1' 1 2 6 13 15
++mkdir -m 0700 $tmpdir || exit 1
++cd $tmpdir || exit 1
+ exist_test -d "$tmpdir" "tmpdir directory"
+
+ EDIT=${VISUAL-${EDITOR-$std_editor}}
+@@ -1716,8 +1729,12 @@
+ test -f $bases/mf.base ||
+ run_config_mf
+
++$echon "Checking for formats... "
+ fmtutil --missing
++echo "done"
++$echon "Checking for program links... "
+ texlinks ${SILENT_TEXLINKS+-s}
++echo "done"
+
+ check_terminal
+ cat <<eof
+--- texk/tetex/texdoc
++++ texk/tetex/texdoc Thu Mar 2 14:31:12 2000
+@@ -25,18 +25,24 @@
+
+ # Viewing programs, according to filename extension. (You can
+ # override or add to them by setting environment variables).
+-: ${TEXDOCVIEW_dvi='xdvi %s &'}
+-: ${TEXDOCVIEW_pdf='acroread %s &'}
+-: ${TEXDOCVIEW_ps='ghostview %s &'}
+-: ${TEXDOCVIEW_html='netscape %s &'}
+-: ${TEXDOCVIEW_txt="${PAGER-more} %s"}
++: ${TEXDOCVIEW_dvi='( xdvi %s ) &'}
++: ${TEXDOCVIEW_pdf='( acroread %s ) &'}
++: ${TEXDOCVIEW_ps='( ghostview %s ) &'}
++: ${TEXDOCVIEW_html='( Netscape %s ) &'}
++: ${TEXDOCVIEW_txt="${PAGER-"less -M"} %s"}
++
++# Commands run to uncompress files, according to filename extension.
++: ${TEXDOCUNZIP_gz='gzip -d -c'}
++: ${TEXDOCUNZIP_bz2='bzip2 -d -c'}
++: ${TEXDOCUNZIP_zip='unzip -p'}
++: ${TEXDOCUNZIP_Z='uncompress -d -c'}
+
+ mode=viewer
+ help='Usage: texdoc [OPTION]... [NAME]...
+ Search for NAME in the TeX documentation and start a viewer.
+
+ --help show this help
+- -v verbose mode: show viewer command
++ -v verbose mode: show viewer command
+ -l just list all matching files. Do not start a viewer.'
+
+ verbosemode=false
+@@ -52,10 +58,21 @@
+ esac
+ do shift; done
+
++tmpdir=${TMPDIR-/tmp}/texdoc$$.$RANDOM
++mkdir -m 0700 $tmpdir || exit 1
++trap 'rm -rf $tmpdir/; exit 1' 1 2 6 13 15
++clean='rmdir $tmpdir/ 2>/dev/null'
++TMPDIR=$tmpdir; export TMPDIR
++
++listext="`kpsewhich --expand-brace='$TEXDOCEXT' 2>/dev/null`"
++test -z "$listext" && listext=":"
++
+ for name
+ do
+ found=false
+- for ext in "" .dvi .pdf .ps .txt .html; do
++ OIFS=$IFS
++ IFS=':'
++ for ext in $listext; do
+
+ filename=`kpsewhich -format='TeX system documentation' $name$ext 2>/dev/null`
+ test -z "$filename" && continue
+@@ -64,16 +81,29 @@
+ if test $mode = list; then
+ echo $filename
+ else
++ dir=`echo $filename | sed 's%/[^/]*$%%'`
+ ext=`echo $filename | sed 's%.*\.%%'`
++ eval uncompress="\$TEXDOCUNZIP_$ext"
++ if test -n "$uncompress"
++ then
++ ext=`echo $filename | sed -e "s|\\.$ext\$||" | sed 's%.*\.%%'`
++ fi
+ viewer=\$"TEXDOCVIEW_$ext"
+- viewer=`eval echo $viewer | sed -e "s|%s|$filename|g"`
++ if test -n "$uncompress"
++ then
++ src=`echo "$filename" | sed -e 's%.*/%%' -e 's%\.[^.]*$%%'`
++ eval "$uncompress $filename > $tmpdir/$src"
++ filename=$tmpdir/$src
++ viewer=`eval echo $viewer | sed -e "s|%s|$filename;rm -f $filename;$clean|g"`
++ else
++ viewer=`eval echo $viewer | sed -e "s|%s|$filename;$clean|g"`
++ fi
+ if test -z "$viewer"
+- then
++ then
+ echo "Don't know how to view file type $ext" 1>&2
+ echo "(matching file was $filename)" 1>&2
+- else
+- $verbosemode && echo $viewer
+- dir=`echo "$filename" | sed 's%/[^/]*$%%'`
++ else
++ $verbosemode && echo $viewer;
+ test -n "$dir" && test -d "$dir" && cd "$dir"
+ eval $viewer
+ break # just stop after the first usable extension
+@@ -82,5 +112,8 @@
+
+ done
+ $found || echo "Can't find documentation for \`$name'" 1>&2
++ IFS=$OIFS
+ done
++sleep 2
++eval $clean
+ exit 0
+--- texk/tetex/texlinks
++++ texk/tetex/texlinks Thu Mar 2 14:31:12 2000
+@@ -59,16 +59,18 @@
+ # search a binary along $PATH:
+ check_for_binary()
+ {
+- testbin=$1
+- set x `echo "$PATH" | sed 's/^:/.:/; s/:$/:./; s/::/:.:/g; s/:/ /g'`; shift
+- for i
+- do
+- if [ -x "$i/$testbin" ]; then
+- echo "$i/$testbin"
+- return 0
+- fi
+- done
+- return 1
++# testbin=$1
++# set x `echo "$PATH" | sed 's/^:/.:/; s/:$/:./; s/::/:.:/g; s/:/ /g'`; shift
++# for i
++# do
++# if [ -x "$i/$testbin" ]; then
++# echo "$i/$testbin"
++# return 0
++# fi
++# done
++# return 1
++
++ type -p $1
+ }
+
+
+@@ -142,8 +144,23 @@
+ upd_symlinkdir()
+ {
+ search_symlinkdir || return
+- for i in `sed 's@ .*@@' cnf_file_ln.$$`; do
+- install_link "$selfautoloc/$i" "$symlinkdir/$i"
++ set x `cat cnf_file_ln.$$` ; shift
++ while test $# != 0; do
++ fmt=$1; ini=$3; shift; shift; shift
++
++ # Some broken shells destroy the positional arguments when calling a
++ # shellfunction. Therefore, we save and restore them "by hand" in the
++ # main_args_while variable.
++ main_args_while="$@"
++
++ kpsewhich -progname=$fmt -format=tex $ini >/dev/null 2>&1
++ test $? -ne 0 && continue
++
++ install_link "$selfautoloc/$fmt" "$symlinkdir/$fmt"
++
++ # restore positional arguments:
++ set x $main_args_while; shift
++
+ done
+ }
+
+@@ -181,13 +198,14 @@
+ test -z "$cnf_file" && cnf_file=`kpsewhich --format='web2c files' $cnf`
+ test -f "$cnf_file" || abort "config file \`$cnf' not found"
+
+- tmpdir=${TMP-/tmp}/fmtutil.$$
+- trap 'cd /; cd "$thisdir"; rm -rf "$tmpdir"; exit 0' 0 1 2 3 7 13 15
+- mkdir "$tmpdir" || abort "could not create directory \`$tmpdir'"
++ tmpdir=${TMPDIR-/tmp}/texlinks$$.$RANDOM
++ trap 'cd /; cd "$thisdir"; rm -rf "$tmpdir"; exit 0' 0
++ trap 'cd /; cd "$thisdir"; rm -rf "$tmpdir"; exit 1' 1 2 3 7 13 15
++ mkdir -m 0700 "$tmpdir" || abort "could not create directory \`$tmpdir'"
+ cd "$tmpdir" || exit 1
+
+- sed '/^[ ]*#/d; /^[ ]*$/d' $cnf_file \
+- | awk '{print $1, $2}' > cnf_file_ln.$$
++ sed '/^[ ]*#/d; /^[ ]*$/d; s%\*%%' $cnf_file \
++ | awk '{print $1, $2, $NF}' > cnf_file_ln.$$
+
+ if test -z "$dirs"; then
+ if test $multiplatform = true; then
+@@ -208,12 +226,15 @@
+ # cnf_file_ln.$$ has lines with "format engine" pairs
+ set x `cat cnf_file_ln.$$`; shift
+ while test $# != 0; do
+- fmt=$1; engine=$2; shift; shift
++ fmt=$1; engine=$2; ini=$3; shift; shift; shift
+
+ # Some broken shells destroy the positional arguments when calling a
+ # shellfunction. Therefore, we save and restore them "by hand" in the
+ # main_args_while variable.
+ main_args_while="$@"
++
++ kpsewhich -progname=$fmt -format=tex $ini >/dev/null 2>&1
++ test $? -ne 0 && continue
+
+ test "x$fmt" = "x$engine" && continue
+ if test -f "$d/$engine"; then
+--- texk/web2c/fmtutil.in
++++ texk/web2c/fmtutil.in Thu Mar 2 14:31:12 2000
+@@ -28,30 +28,30 @@
+
+ # Standard formats (plain, latex) with all engines:
+
+-tex @TEXBIN@ - tex.ini
+-latex @TEXBIN@ language.dat latex.ini
++tex @TEXBIN@ - tex.ini
++latex @TEXBIN@ language.dat latex.ini
+ @ETEX@etex etex language.def *etex.ini
+ @ETEX@elatex etex language.dat *elatex.ini
+ @PTEX@pdftex pdftex language.dat pdftex.ini
+-@PTEX@pdflatex pdftex language.dat pdflatex.ini
++@PTEX@pdflatex pdftex language.dat pdflatex.ini
+ @PETEX@pdfetex pdfetex language.def *pdfetex.ini
+ @PETEX@pdfelatex pdfetex language.dat *pdfelatex.ini
+ @OMEGA@omega omega language.dat omega.ini
+ @OMEGA@lambda omega language.dat lambda.ini
+
+ # The amstex format:
+-# amstex @TEXBIN@ - amstex.ini
++amstex @TEXBIN@ - amstex.ini
+
+ # Variants of plain and amstex which allow to customize hyphenation:
+ # bplain @TEXBIN@ language.dat bplain.ini
+ # bamstex @TEXBIN@ language.dat bamstex.ini
+
+ # Context formats:
+-# cont-cz pdfetex cont-usr.tex *cont-cz.ini
+-# cont-de pdfetex cont-usr.tex *cont-de.ini
+-# cont-en pdfetex cont-usr.tex *cont-en.ini
+-# cont-nl pdfetex cont-usr.tex *cont-nl.ini
+-# cont-uk pdfetex cont-usr.tex *cont-uk.ini
++cont-cz pdfetex cont-usr.tex *cont-cz.ini
++cont-de pdfetex cont-usr.tex *cont-de.ini
++cont-en pdfetex cont-usr.tex *cont-en.ini
++cont-nl pdfetex cont-usr.tex *cont-nl.ini
++cont-uk pdfetex cont-usr.tex *cont-uk.ini
+
+ # language-specific things:
+
+@@ -65,5 +65,13 @@
+ # mex tex mexconf.tex mex.ini
+ # pdfmex pdftex mexconf.tex pdfmex.ini
+
++# - French:
++frlatex tex language.dat -mltex frlatex.ini
++
+ # Other formats:
+-# eplain tex language.dat eplain.ini
++eplain tex language.dat eplain.ini
++
++# Formats not directly supported by teTeX. You need to add the necessary
++# macro files and eventually run texhash before you can use the following:
++jadetex tex language.dat &latex jadetex.ini
++latex209 tex lhyphen.tex latex209.ini
+--- texk/web2c/window/x11-Xlib.c
++++ texk/web2c/window/x11-Xlib.c Thu Mar 2 14:31:12 2000
+@@ -73,6 +73,8 @@
+ #define BORDER_WIDTH 1 /* Should get this from resource. */
+ #define DEFAULT_X_POSITION 0
+ #define DEFAULT_Y_POSITION 0
++#define DEFAULT_WIDTH 450
++#define DEFAULT_DEPTH 500
+
+
+ /* Return 1 (i.e., true) if display opened successfully, else 0. */
+@@ -99,11 +101,11 @@
+
+ sizehints.x = DEFAULT_X_POSITION;
+ sizehints.y = DEFAULT_Y_POSITION;
+- sizehints.width = screenwidth;
+- sizehints.height = screendepth;
++ sizehints.width = DEFAULT_WIDTH;
++ sizehints.height = DEFAULT_DEPTH;
+ sizehints.flags = PPosition|PSize;
+
+- sprintf (default_geometry, "%ux%u+%u+%u", screenwidth, screendepth,
++ sprintf (default_geometry, "%ux%u+%u+%u", DEFAULT_WIDTH, DEFAULT_DEPTH,
+ DEFAULT_X_POSITION, DEFAULT_Y_POSITION);
+
+ /* Look up the geometry for this window. (Section 10.2 Obtaining X
+--- texk/web2c/window/x11-Xt.c
++++ texk/web2c/window/x11-Xt.c Thu Mar 2 14:31:12 2000
+@@ -23,8 +23,8 @@
+
+ #define PLANE 0
+
+-static unsigned int mf_defwidth = 0;
+-static unsigned int mf_defheight = 0;
++static unsigned int mf_defwidth = 450;;
++static unsigned int mf_defheight = 500;
+
+ static Display *mf_display;
+ static Window mf_window;
+--- texk/xdvik/xdvi-sh
++++ texk/xdvik/xdvi-sh Thu Mar 2 14:31:12 2000
+@@ -45,4 +45,19 @@
+ XFILESEARCHPATH="$xdviapppath:${XFILESEARCHPATH-%D}"; export XFILESEARCHPATH
+ fi
+
+-exec xdvi.bin $NAMEOPT ${1+"$@"}
++uncompress=
++filename="${1+"$@"}"
++case "${filename}" in
++ *.gz) uncompress="gzip -d -c $filename" ;;
++ *.bz2) uncompress="bzip2 -d -c $filename" ;;
++esac
++if test -n "$uncompress" -a -r "$filename" ; then
++ filename="${filename##*/}"
++ tmpfile="`mktemp ${TMPDIR-/tmp}/${filename%.*}.XXXXXX`" || exit 1
++ trap 'rm -f $tmpfile' 0 1 2 3 6 13 15
++ $uncompress > $tmpfile
++ xdvi.bin $NAMEOPT $tmpfile || exit 1
++ exit 0
++else
++ exec xdvi.bin $NAMEOPT ${1+"$@"}
++fi