rpms/texlive/devel dvipsk-jpatch-pdvips.patch, NONE, 1.1 texlive-12a_fix_thumbpdf_invocation.patch, NONE, 1.1 texlive-12b_fix_a2ping_invocation.patch, NONE, 1.1 texlive-12c_fix_pdfcrop_invocation.patch, NONE, 1.1 texlive-12d_fix_ebong_invocation.patch, NONE, 1.1 texlive-12e_fix_vpe_invocation.patch, NONE, 1.1 texlive-2007-badscript.patch, NONE, 1.1 texlive-2007-browser.patch, NONE, 1.1 texlive-2007-copyright-utf8-man.patch, NONE, 1.1 texlive-2007-dvipdfm-security.patch, NONE, 1.1 texlive-2007-epstopdf-shellbang.patch, NONE, 1.1 texlive-2007-jp-platex209.patch, NONE, 1.1 texlive-2007-kpse-extensions.patch, NONE, 1.1 texlive-2007-kuesterei-man.patch, NONE, 1.1 texlive-2007-makej.patch, NONE, 1.1 texlive-2007-pdvips.patch, NONE, 1.1 texlive-2007-ptex-3.1.10.patch, NONE, 1.1 texlive-2007-pxdvi.patch, NONE, 1.1 texlive-2007-tkdep.patch, NONE, 1.1 texlive-2007-tmpcleanup.patch, NONE, 1.1 texlive-2007-xdvi-keepflag.patch, NONE, 1.1 texlive-2007-xprint.patch, NONE, 1.1 texlive-Build_script.patch, NONE, 1.1 texlive-CVE-2007-4033.patch, NONE, 1.1 texlive-CVE-2007-4352-5392-5393.patch, NONE, 1.1 texlive-checklib_fixes.patch, NONE, 1.1 texlive-dviljktemp.patch, NONE, 1.1 texlive-dvipdfm_timezone.patch, NONE, 1.1 texlive-dvips_fontbug_fix_upstream.patch, NONE, 1.1 texlive-dvipsoverflow.patch, NONE, 1.1 texlive-fedora_paths.patch, NONE, 1.1 texlive-filter-requires.sh, NONE, 1.1 texlive-fix_makempx_installation.patch, NONE, 1.1 texlive-fix_pkfix_invocation.patch, NONE, 1.1 texlive-fmtutil_keep_failedlog.patch, NONE, 1.1 texlive-generate-tarball.sh, NONE, 1.1 texlive-maketexmf.patch, NONE, 1.1 texlive-mktexlsr_fixes.patch, NONE, 1.1 texlive-more_paths.patch, NONE, 1.1 texlive-pdftex.patch, NONE, 1.1 texlive-poppler.patch, NONE, 1.1 texlive-source-CVE-2007-0650.patch, NONE, 1.1 texlive-source-icu.patch, NONE, 1.1 texlive-source-t1lib.patch, NONE, 1.1 texlive-source-warns.patch, NONE, 1.1 texlive-source-x11r7.patch, NONE, 1.1 texlive-source-xdvi-numlock.patch, NONE, 1.1 texlive-source-xdvizilla.patch, NONE, 1.1 texlive-teckit.patch, NONE, 1.1 texlive-texdoc.patch, NONE, 1.1 texlive-xdvi-maxchar.patch, NONE, 1.1 texlive-xdvi.patch, NONE, 1.1 texlive.cron, NONE, 1.1 texlive.spec, NONE, 1.1 vfontmap, NONE, 1.1 xdvi48x48.png, NONE, 1.1 xdvik-22.84.10-j1.34.patch, NONE, 1.1 .cvsignore, 1.1, 1.2 sources, 1.1, 1.2

Jindrich Novy (jnovy) fedora-extras-commits at redhat.com
Sun Dec 2 08:03:53 UTC 2007


Author: jnovy

Update of /cvs/extras/rpms/texlive/devel
In directory cvs-int.fedora.redhat.com:/tmp/cvs-serv19979/devel

Modified Files:
	.cvsignore sources 
Added Files:
	dvipsk-jpatch-pdvips.patch 
	texlive-12a_fix_thumbpdf_invocation.patch 
	texlive-12b_fix_a2ping_invocation.patch 
	texlive-12c_fix_pdfcrop_invocation.patch 
	texlive-12d_fix_ebong_invocation.patch 
	texlive-12e_fix_vpe_invocation.patch 
	texlive-2007-badscript.patch texlive-2007-browser.patch 
	texlive-2007-copyright-utf8-man.patch 
	texlive-2007-dvipdfm-security.patch 
	texlive-2007-epstopdf-shellbang.patch 
	texlive-2007-jp-platex209.patch 
	texlive-2007-kpse-extensions.patch 
	texlive-2007-kuesterei-man.patch texlive-2007-makej.patch 
	texlive-2007-pdvips.patch texlive-2007-ptex-3.1.10.patch 
	texlive-2007-pxdvi.patch texlive-2007-tkdep.patch 
	texlive-2007-tmpcleanup.patch texlive-2007-xdvi-keepflag.patch 
	texlive-2007-xprint.patch texlive-Build_script.patch 
	texlive-CVE-2007-4033.patch 
	texlive-CVE-2007-4352-5392-5393.patch 
	texlive-checklib_fixes.patch texlive-dviljktemp.patch 
	texlive-dvipdfm_timezone.patch 
	texlive-dvips_fontbug_fix_upstream.patch 
	texlive-dvipsoverflow.patch texlive-fedora_paths.patch 
	texlive-filter-requires.sh 
	texlive-fix_makempx_installation.patch 
	texlive-fix_pkfix_invocation.patch 
	texlive-fmtutil_keep_failedlog.patch 
	texlive-generate-tarball.sh texlive-maketexmf.patch 
	texlive-mktexlsr_fixes.patch texlive-more_paths.patch 
	texlive-pdftex.patch texlive-poppler.patch 
	texlive-source-CVE-2007-0650.patch texlive-source-icu.patch 
	texlive-source-t1lib.patch texlive-source-warns.patch 
	texlive-source-x11r7.patch texlive-source-xdvi-numlock.patch 
	texlive-source-xdvizilla.patch texlive-teckit.patch 
	texlive-texdoc.patch texlive-xdvi-maxchar.patch 
	texlive-xdvi.patch texlive.cron texlive.spec vfontmap 
	xdvi48x48.png xdvik-22.84.10-j1.34.patch 
Log Message:
initial import


dvipsk-jpatch-pdvips.patch:

--- NEW FILE dvipsk-jpatch-pdvips.patch ---
--- tetex-src-3.0/texk/pdvipsk/Makefile.in.pdvips	2005-04-13 19:35:07.000000000 +0900
+++ tetex-src-3.0/texk/pdvipsk/Makefile.in	2005-04-13 19:53:44.000000000 +0900
@@ -20,6 +20,8 @@
 ac_include ../make/texi.mk
 prog_cflags = -DUNIX -DKPATHSEA -DNeedFunctionPrototypes -DSHIFTLOWCHARS
 
+ppsheaderdir = $(texmf)/pdvips
+
 # The `t[mp]-' business is so that we don't create an empty .pro file,
 # if running squeeze fails for some reason.  A dependency on squeeze
 # fails here, so we include it below.
@@ -36,11 +38,11 @@
 header.o repack.o virtualfont.o dpicheck.o finclude.o writet1.o		\
 pprescan.o papersiz.o color.o bbox.o hps.o t1part.o
 
-program = dvips
+program = pdvips
 programs = afm2tfm $(program)
 
 
-default all: $(programs) $(prologues) dvips.info
+default all: $(programs) $(prologues)
 
 $(program): $(kpathsea) $(objects)
 	$(kpathsea_link) $(objects) $(LOADLIBES) 
@@ -93,16 +95,16 @@
 	for p in $(programs); do rm -f $(bindir)/$$p; done
 	rm -f $(bindir)/o$(program)
 
-install-data: $(program).info
-	$(SHELL) $(top_srcdir)/../mkinstalldirs $(man1dir) $(infodir) $(psheaderdir)/base
+install-data:
+	$(SHELL) $(top_srcdir)/../mkinstalldirs $(man1dir) $(infodir) $(ppsheaderdir)/base
 # PostScript prologues and encodings.
-	for h in $(prologues); do $(INSTALL_DATA) $$h $(psheaderdir)/base/$$h; done
+	for h in $(prologues); do $(INSTALL_DATA) $$h $(ppsheaderdir)/base/$$h; done
 #	cd $(srcdir)/reencode && \
 #	  for e in *.enc; do $(INSTALL_DATA) $$e $(psheaderdir)/base/$$e; done
 # config.ps. Any one config.ps will be wrong for most people, so don't
 # install anything by default.
-	$(INSTALL) -d $(psheaderdir)/config
-	$(INSTALL_DATA) $(srcdir)/config.ps $(psheaderdir)/config/config.ps
+	$(INSTALL) -d $(ppsheaderdir)/config
+	$(INSTALL_DATA) $(srcdir)/config.ps $(ppsheaderdir)/config/config.ps
 # psfonts.map.
 #	if test ! -r $(psheaderdir)/base/psfonts.map 			\
 #	   || grep 'original psfonts.map --' $(psheaderdir)/base/psfonts.map \
@@ -110,11 +112,8 @@
 #	  $(INSTALL_DATA) $(srcdir)/psfonts.map $(psheaderdir)/base/psfonts.map; \
 #        else true; fi
 # psfonts_jp.map.
-	$(INSTALL) -d $(texmf)/fonts/map/dvips/ptex
-	$(INSTALL_DATA) $(srcdir)/psfonts_jp.map $(texmf)/fonts/map/dvips/ptex/psfonts_jp.map
-# Info files.
-	cd $(srcdir) && for i in $(program).i*; do \
-	  $(INSTALL_DATA) $$i $(infodir)/$$i; done
+	$(INSTALL) -d $(texmf)/fonts/map/pdvips
+	$(INSTALL_DATA) $(srcdir)/psfonts_jp.map $(fontdir)/map/pdvips/psfonts_jp.map
 # Man pages.
 	$(INSTALL_DATA) $(srcdir)/$(program).1 $(man1dir)/$(program).$(manext)
 	rm -f $(man1dir)/o$(program).$(manext)
@@ -124,9 +123,6 @@
 #	cd $(srcdir)/tex && for m in *.tex; do \
 #	  $(INSTALL_DATA) $$m $(dvips_plain_macrodir)/$$m; done
 	$(POST_INSTALL)
-	if $(SHELL) -c 'install-info --version' >/dev/null 2>&1; then \
-	  install-info --info-dir=$(infodir) $(infodir)/$(program).info; \
-	else true; fi
 
 uninstall-data:
 	$(PRE_UNINSTALL)
@@ -149,11 +145,11 @@
 	rm -f $(man1dir)/dvips.$(manext) $(man1dir)/afm2tfm.$(manext)
 
 distname = dvipsk
-program_files = *.texi *.info* *.lpro psfonts.map *.1 texc.script \
+program_files = *.texi *.lpro psfonts.map *.1 texc.script \
   dvips.help $(program).aux $(program).cps dvipstst.dvi
 version_files = dvips.h afm2tfm.c dvips.c
 
-pre-dist-$(distname): INSTALL $(program).info $(program).dvi
+pre-dist-$(distname): INSTALL $(program).dvi
 post-dist-$(distname):
 	ln -s `pwd`/contrib `pwd`/tex $(distdir)
 	mkdir $(distdir)/reencode; ln -s $(fontname)/*.enc $(distdir)/reencode
--- tetex-src-2.99.6.20041211-beta/texk/pdvipsk/dvips.c.pdvips	2004-12-14 21:13:36.005636838 +0900
+++ tetex-src-2.99.6.20041211-beta/texk/pdvipsk/dvips.c	2004-12-14 21:13:36.076623936 +0900
@@ -588,17 +588,17 @@ main P2C(int, argc, char **, argv)
 #ifdef __APPLE__ /* for Mac OS X, T. Uchiyama */
    struct rlimit rl;
    getrlimit(RLIMIT_STACK, &rl);
    rl.rlim_cur = 2048 * 1024;
    setrlimit(RLIMIT_STACK, &rl);
 #endif
 
 #ifdef KPATHSEA
-   kpse_set_program_name (argv[0], "dvips");
+   kpse_set_program_name (argv[0], "pdvips");
    kpse_set_program_enabled (kpse_pk_format, MAKE_TEX_PK_BY_DEFAULT, kpse_src_compile);
 #endif
    
 #ifdef __THINK__
    argc = dcommand(&argv) ; /* do I/O stream redirection */
 #endif
 #ifdef VMS		/* Grab the command-line buffer */
    short len_arg;
--- texlive-2007/texk/configure.in.pdvips	2007-01-11 01:36:20.000000000 +0900
+++ texlive-2007/texk/configure.in	2007-02-22 10:45:22.000000000 +0900
@@ -57,16 +57,17 @@ PKGS='
  dvi2tty
  dvidvi
  dviljk
  dvipdfm
  dvipdfmx
  dvipng
  dvipos
  dvipsk
+ pdvipsk
  gsftopk
  lacheck
  makeindexk
  musixflx
  ps2pkm
  seetexk
  tetex
  tex4htk
--- texlive-2007/texk/configure.pdvips	2007-01-11 01:36:44.000000000 +0900
+++ texlive-2007/texk/configure	2007-02-22 10:46:14.000000000 +0900
@@ -6599,16 +6599,17 @@ PKGS='
  dvi2tty
  dvidvi
  dviljk
  dvipdfm
  dvipdfmx
  dvipng
  dvipos
  dvipsk
+ pdvipsk
  gsftopk
  lacheck
  makeindexk
  musixflx
  ps2pkm
  seetexk
  tetex
  tex4htk

texlive-12a_fix_thumbpdf_invocation.patch:

--- NEW FILE texlive-12a_fix_thumbpdf_invocation.patch ---
12a_fix_thumbpdf_invocation.dpatch  <preining at logic.at>
Fix invocation of thumbpdf to get rid of magic
---
 build/source/texk/tetex/thumbpdf |    5 +----
 1 file changed, 1 insertion(+), 4 deletions(-)

Index: texlive-bin-2007/build/source/texk/tetex/thumbpdf
===================================================================
--- texlive-bin-2007.orig/build/source/texk/tetex/thumbpdf	2005-07-06 13:03:00.000000000 +0200
+++ texlive-bin-2007/build/source/texk/tetex/thumbpdf	2007-05-19 16:30:21.000000000 +0200
@@ -1,7 +1,4 @@
-eval '(exit $?0)' && eval 'exec perl -S $0 ${1+"$@"}' && eval 'exec perl -S $0 $argv:q'
-  if 0;
-use strict;
-$^W=1; # turn warning on
+#!/usr/bin/perl -w
 #
 # thumbpdf.pl
 #

texlive-12b_fix_a2ping_invocation.patch:

--- NEW FILE texlive-12b_fix_a2ping_invocation.patch ---
#! /bin/sh /usr/share/dpatch/dpatch-run
## 12b_fix_a2ping_invocation.dpatch  <preining at logic.at>
##
## All lines beginning with `## DP:' are a description of the patch.
## DP: Fix invocation of a2ping to get rid of magic

@DPATCH@
---
 build/source/texk/tetex/a2ping |   10 ++--------
 1 file changed, 2 insertions(+), 8 deletions(-)

Index: texlive-bin-2006.svn3816/build/source/texk/tetex/a2ping
===================================================================
--- texlive-bin-2006.svn3816.orig/build/source/texk/tetex/a2ping	2006-01-17 22:41:51.000000000 +0100
+++ texlive-bin-2006.svn3816/build/source/texk/tetex/a2ping	2007-01-26 03:58:02.000000000 +0100
@@ -1,11 +1,5 @@
-#! /bin/sh
-eval '(exit $?0)' && eval 'PERL_BADLANG=x;export PERL_BADLANG;: \
-;exec perl -x -S -- "$0" ${1+"$@"};#'if 0;
-eval 'setenv PERL_BADLANG x;exec perl -x -S -- "$0" $argv:q;#'.q+
-#!perl -w
-package Htex::a2ping;  $0=~/(.*)/s;unshift at INC,'.';do($1);die$@if$@;__END__+if !1;
-# This Perl script was generated by JustLib2 at Wed Apr 23 09:14:13 2003.
-# Don't touch/remove any lines above; http://www.inf.bme.hu/~pts/justlib
+#! /usr/bin/perl -w
+package Htex::a2ping;
 #
 # This program is free software, licensed under the GNU GPL, >=2.0.
 # This software comes with absolutely NO WARRANTY. Use at your own risk!

texlive-12c_fix_pdfcrop_invocation.patch:

--- NEW FILE texlive-12c_fix_pdfcrop_invocation.patch ---
12c_fix_pdfcrop_invocation.dpatch  <preining at logic.at>
Fix invocation of pdfcrop to get rid of magic
---
 build/source/texk/tetex/pdfcrop |    4 +---
 1 file changed, 1 insertion(+), 3 deletions(-)

Index: texlive-bin-2006.svn3816/build/source/texk/tetex/pdfcrop
===================================================================
--- texlive-bin-2006.svn3816.orig/build/source/texk/tetex/pdfcrop	2006-01-03 00:53:39.000000000 +0100
+++ texlive-bin-2006.svn3816/build/source/texk/tetex/pdfcrop	2007-01-26 03:58:07.000000000 +0100
@@ -1,7 +1,5 @@
-eval '(exit $?0)' && eval 'exec perl -S $0 ${1+"$@"}' && eval 'exec perl -S $0 $argv:q'
-  if 0;
+#!/usr/bin/perl -w
 use strict;
-$^W=1; # turn warning on
 #
 # pdfcrop.pl
 #

texlive-12d_fix_ebong_invocation.patch:

--- NEW FILE texlive-12d_fix_ebong_invocation.patch ---
---
 build/source/texk/texlive/ebong |    1 +
 1 file changed, 1 insertion(+)

Index: texlive-bin-2007/build/source/texk/texlive/ebong
===================================================================
--- texlive-bin-2007.orig/build/source/texk/texlive/ebong	2007-05-15 14:44:43.000000000 +0200
+++ texlive-bin-2007/build/source/texk/texlive/ebong	2007-05-15 14:44:52.000000000 +0200
@@ -1,3 +1,4 @@
+#!/usr/bin/python
 # look in newbong
 import sre
 A='A'

texlive-12e_fix_vpe_invocation.patch:

--- NEW FILE texlive-12e_fix_vpe_invocation.patch ---
---
 build/source/texk/texlive/vpe |    3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

Index: texlive-bin-2007/build/source/texk/texlive/vpe
===================================================================
--- texlive-bin-2007.orig/build/source/texk/texlive/vpe	2007-05-19 16:37:45.000000000 +0200
+++ texlive-bin-2007/build/source/texk/texlive/vpe	2007-05-19 16:37:54.000000000 +0200
@@ -1,5 +1,4 @@
-eval '(exit $?0)' && eval 'exec perl -S $0 ${1+"$@"}' && eval 'exec perl -S $0 $argv:q'
-  if 0;
+#!/usr/bin/perl -w
 use strict;
 #
 # vpe.pl

texlive-2007-badscript.patch:

--- NEW FILE texlive-2007-badscript.patch ---
--- TeX/texk/tetex/allcm.badscript	2006-05-24 16:15:36.000000000 -0700
+++ TeX/texk/tetex/allcm	2006-05-24 16:18:47.000000000 -0700
@@ -14,7 +14,7 @@
 test -n "${ZSH_VERSION+set}" && alias -g '${1+"$@"}'='"$@"'
 
 progname=`basename $0`
-tmpdir=${TMPDIR-${TEMP-${TMP-/tmp}}}/$progname.$$
+tmpdir=`mktemp -d ${TMP-/tmp}/$progname.XXXXXX`
 
 case "$progname" in
   allec)
@@ -81,11 +81,6 @@
   exit 1
 ' 1 2 3 7 13 15
 
-(umask 077; mkdir "$tmpdir") || {
-  echo "$progname: failed to create temp directory." >&2
-  exit 1
-}
-
 cd $tmpdir || exit 1
 echo >&2
 echo "---------------------------------------------------------------------" >&2
--- TeX/texk/tetex/fmtutil.badscript	2006-05-24 16:19:21.000000000 -0700
+++ TeX/texk/tetex/fmtutil	2006-05-24 16:22:26.000000000 -0700
@@ -108,8 +108,6 @@
 
   trap 'cleanup 1' 1 2 3 7 13 15
   needsCleanup=true
-  (umask 077; mkdir "$tmpdir") \
-    || abort "could not create directory \`$tmpdir'"
 }
 
 ###############################################################################
@@ -355,7 +353,7 @@
   need_find_hyphenfile=false
   cfgparam=
   cfgmaint=
-  tmpdir=${TMPDIR-${TEMP-${TMP-/tmp}}}/$progname.$$
+  tmpdir=`mktemp -d ${TMP-/tmp}/$progname.XXXXXX`
   verboseFlag=true
 
   # mktexfmtMode: if called as mktexfmt, set to true. Will echo the generated
--- TeX/texk/tetex/texconfig.badscript	2006-05-24 16:22:54.000000000 -0700
+++ TeX/texk/tetex/texconfig	2006-05-24 16:24:18.000000000 -0700
@@ -37,7 +37,7 @@
   TEXMFDBS TEXMFINI TEXMFSCRIPTS TEXPICTS TEXPKS TEXPOOL TEXPSHEADERS
   TEXSOURCES TFMFONTS TRFONTS TTFONTS VFFONTS WEB2C WEBINPUTS
 "
-tmpdir=${TMPDIR-${TEMP-${TMP-/tmp}}}/tctmp.$$
+tmpdir=`mktemp -d "${TMP-/tmp}/$progname.XXXXXX"` || exit 1
 needsCleanup=false
 lastUpdatedFile=
 
@@ -216,8 +216,6 @@
 
   trap 'cleanup 1' 1 2 3 7 13 15
   needsCleanup=true
-  (umask 077; mkdir "$tmpdir") \
-    || abort "could not create directory \`$tmpdir'"
 }
 
 ###############################################################################
--- TeX/texk/tetex/texlinks.badscript	2005-08-28 12:45:59.000000000 -0700
+++ TeX/texk/tetex/texlinks	2006-05-24 16:31:25.000000000 -0700
@@ -100,8 +100,6 @@
 
   trap 'cleanup 1' 1 2 3 7 13 15
   needsCleanup=true
-  (umask 077; mkdir "$tmpdir") \
-    || abort "could not create directory \`$tmpdir'"
 }
 
 
@@ -192,7 +190,7 @@
 upd_symlinkdir()
 {
   search_symlinkdir || return 0
-  for i in `sed 's@ .*@@' cnf_file_ln.$$`; do
+  for i in `sed 's@ .*@@' $tmpdir/cnf_file_ln`; do
     install_link "$selfautoloc/$i" "$symlinkdir/$i"
   done
 }
@@ -236,12 +234,12 @@
   test -f "$cnf_file" || abort "config file \`$cnf' not found"
 
 
-  tmpdir=${TMPDIR-${TEMP-${TMP-/tmp}}}/texlinks.$$
+  tmpdir=`mktemp -d ${TMP-/tmp}/$progname.XXXXXX` || exit 1
   setupTmpDir
   cd "$tmpdir" || cleanup 1
 
   sed '/^[ 	]*#/d; /^[ 	]*$/d' $cnf_file \
-    | awk '{print $1, $2}' > cnf_file_ln.$$
+    | awk '{print $1, $2}' > $tmpdir/cnf_file_ln
 
   if test -z "$dirs"; then
     if test $multiplatform = true; then
@@ -259,8 +257,8 @@
   for d in $dirs; do
     kpseaccess -w $d \
       || { errmsg "$d: no write permissions. Skipping..."; continue; }
-    # cnf_file_ln.$$ has lines with "format engine" pairs
-    set x `cat cnf_file_ln.$$`; shift
+    # $tmpdir/cnf_file_ln has lines with "format engine" pairs
+    set x `cat $tmpdir/cnf_file_ln`; shift
     while test $# != 0; do
       fmt=$1; engine=$2; shift; shift
 
--- TeX/texk/tetex/updmap.badscript	2006-05-24 16:32:13.000000000 -0700
+++ TeX/texk/tetex/updmap	2006-05-24 16:33:51.000000000 -0700
@@ -769,7 +769,6 @@
 
   trap 'cleanup 1' 1 2 3 7 13 15
   needsCleanup=true
-  mkdir "$tmpdir" || abort "could not create directory \`$tmpdir'"
 }
 
 ###############################################################################
@@ -1296,7 +1295,8 @@
   dvipsoutputdir=; pdftexoutputdir=; dvipdfmoutputdir=
   : ${TEXMFMAIN=`kpsewhich -var-value=TEXMFMAIN`}
 
-  tmpdir=${TMPDIR-${TEMP-${TMP-/tmp}}}/$progname.$$
+  tmpdir=`mktemp -d ${TMP-/tmp}/$progname.XXXXXX` || \
+       abort "could not create directory"
   tmp1=$tmpdir/a
   tmp2=$tmpdir/b
   tmp3=$tmpdir/c
--- TeX/texk/dviljk/dvihp.badscript	2006-05-24 16:43:13.000000000 -0700
+++ TeX/texk/dviljk/dvihp	2006-05-24 16:47:10.000000000 -0700
@@ -7,9 +7,7 @@
 : ${SPOOL=lpr}          # used to print an LJ file
 : ${TMPDIR=${TEMP-${TMP-/tmp}}} # for the dvicopy output
 
-tmpdir="${TMPDIR}"/dvihp$$
-(umask 077; mkdir "$tmpdir") \
-  || { echo "cannot create directory \`$tmpdir'."; exit 1; }
+tmpdir=`mktemp -d ${TMPDIR}/dvihp.XXXXXX` || { echo "cannot create secure temporary directory."; exit 1; }
 
 trap '
   cd "${TMPDIR}"
--- TeX/texk/dvipdfm/dvipdft.badscript	2006-05-24 16:48:16.000000000 -0700
+++ TeX/texk/dvipdfm/dvipdft	2006-05-24 16:51:53.000000000 -0700
@@ -31,7 +31,7 @@
        $progname --help
        $progname --version"
 
-tmpdir=${TMPDIR-${TEMP-${TMP-/tmp}}}/$progname.$$
+tmpdir=`mktemp -d ${TMP-/tmp}/$progname.XXXXXX`
 
 quoteit()
 {

texlive-2007-browser.patch:

--- NEW FILE texlive-2007-browser.patch ---
--- tetex-src-3.0/texk/xdvik/browser.c.browser	2004-11-12 10:25:26.000000000 +0900
+++ tetex-src-3.0/texk/xdvik/browser.c	2005-02-07 15:22:31.849488410 +0900
@@ -39,7 +39,10 @@
 #include "statusline.h"
 
 static const char *const default_browser_cmd =
-	"netscape -raise -remote \"openURL(%s,new-window)\""
+	"xdg-open %s"
+	":firefox -remote \"openURL(%s,new-window)\""
+	":mozilla -remote \"openURL(%s,new-window)\""
+	":xterm -e w3m %s"
 	":xterm -e lynx %s"
 	":xterm -e wget %s";
 
--- tetex-src-3.0/texk/xdvik/gui/xm_prefsP.h.browser	2004-04-22 06:12:09.000000000 +0900
+++ tetex-src-3.0/texk/xdvik/gui/xm_prefsP.h	2005-02-07 15:22:31.850488229 +0900
@@ -96,8 +96,10 @@
 #define Xdvi_APPLY_STR				"Apply"
 
 #define Xdvi_PREFS_BROWSER_DEFAULTS \
+	"xdg-open %s\n" \
+	"firefox -remote 'openURL(%s,new-window)'\n" \
 	"mozilla -remote 'openURL(%s,new-window)'\n" \
-	"netscape -raise -remote 'openURL(%s,new-window)'\n" \
+	"xterm -e w3m %s\n" \
 	"xterm -e lynx %s\n" \
 	Xdvi_ADD_COMMAND_STR
 #define Xdvi_PREFS_EDITOR_DEFAULTS \
--- tetex-src-3.0/texk/xdvik/xdvi.1.in.browser	2005-01-21 01:51:45.000000000 +0900
+++ tetex-src-3.0/texk/xdvik/xdvi.1.in	2005-02-07 15:22:31.854487501 +0900
@@ -365,7 +365,7 @@
 .B WWWBROWSER
 (in that order) are used to determine the browser command. If these are
 not set either, the following default value is used:
-.SB netscape -raise -remote "openURL(%s,new-window)":xterm -e lynx %s:xterm -e wget %s
+.SB xdg-open %s:firefox -remote -remote "openURL(%s,new-window)":mozilla -remote "openURL(%s,new-window)":xterm -e w3m %s:xterm -e lynx %s:xterm -e wget %s
 .\"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
 .TP
 .BI \-bw " width"

texlive-2007-copyright-utf8-man.patch:

--- NEW FILE texlive-2007-copyright-utf8-man.patch ---
diff -ur tetex-src-3.0/texk/tetex/texlinks.man tetex-src-3.0-copyright-utf8-man/texk/tetex/texlinks.man
--- tetex-src-3.0/texk/tetex/texlinks.man	2005-01-20 08:58:46.000000000 -0800
+++ tetex-src-3.0-copyright-utf8-man/texk/tetex/texlinks.man	2006-05-12 01:35:35.000000000 -0700
@@ -54,7 +54,7 @@
 .SH "AUTHOR" 
 .PP 
 \fBtexlinks\fP was written by Thomas Esser 
-<te at dbs\&.uni-hannover\&.de> and is Copyright © 1999\&.
+<te at dbs\&.uni-hannover\&.de> and is Copyright © 1999\&.
 \fBtexlinks\fP has been released into the public domain\&.
 .PP 
 This manual page was written by C\&.M\&. Connelly
diff -ur tetex-src-3.0/texk/tetex/thumbpdf.man tetex-src-3.0-copyright-utf8-man/texk/tetex/thumbpdf.man
--- tetex-src-3.0/texk/tetex/thumbpdf.man	2005-01-20 08:50:12.000000000 -0800
+++ tetex-src-3.0-copyright-utf8-man/texk/tetex/thumbpdf.man	2006-05-12 01:35:58.000000000 -0700
@@ -83,7 +83,7 @@
 .PP 
 .SH "COPYRIGHT" 
 .PP 
-Copyright © 1999\&.  \fBthumbpdf\fP is distributed under
+Copyright © 1999\&.  \fBthumbpdf\fP is distributed under
 version 1, or (at your option) a later version of the LaTeX Project
 Public License\&.
 .PP 

texlive-2007-dvipdfm-security.patch:

--- NEW FILE texlive-2007-dvipdfm-security.patch ---
--- tetex-src-2.0.2/texk/dvipdfm/psimage.c.dvipdfm-security	2001-06-28 20:55:26.000000000 +0100
+++ tetex-src-2.0.2/texk/dvipdfm/psimage.c	2003-03-12 18:12:56.000000000 +0000
@@ -113,10 +113,15 @@
 {
 #ifdef HAVE_SYSTEM
   pdf_obj *result = NULL;
-  char *tmp, *cmd;
+  char tmp[] = "/tmp/dvipdfm.XXXXXX", *cmd;
+  int tfd;
   FILE *pdf_file = NULL;
   /* Get a full qualified tmp name */
-  tmp = tmpnam (NULL);
+  tfd = mkstemp (tmp);
+  if (tfd == -1) {
+    fprintf (stderr, "\nCouldn't create temporary file for output\n");
+    return NULL;
+  } else close (tfd);
   if ((cmd = build_command_line (file_name, tmp))) {
     if (!system (cmd) && (pdf_file = MFOPEN (tmp, FOPEN_RBIN_MODE))) {
       result = pdf_include_page (pdf_file, p, res_name);

texlive-2007-epstopdf-shellbang.patch:

--- NEW FILE texlive-2007-epstopdf-shellbang.patch ---
--- TeX/texk/tetex/epstopdf.perl	2006-05-24 18:09:36.000000000 -0700
+++ TeX/texk/tetex/epstopdf	2006-05-24 18:11:06.000000000 -0700
@@ -1,5 +1,4 @@
-eval '(exit $?0)' && eval 'exec perl -S $0 ${1+"$@"}' && eval 'exec perl -S $0 $argv:q'
-  if 0;
+#!/usr/bin/env perl
 use strict;
 
 # Change by Thomas Esser, Sept. 1998: The above lines allows us to find

texlive-2007-jp-platex209.patch:

--- NEW FILE texlive-2007-jp-platex209.patch ---
--- ptex-src-3.1.8/Makefile.in.orig	2004-12-03 17:33:13.000000000 +0900
+++ ptex-src-3.1.8/Makefile.in	2004-12-16 15:54:25.407886051 +0900
@@ -6,8 +6,8 @@
 default: programs formats
 
 programs=ptex tftopl pltotf pdvitype jbibtex
-euc-formats=ptex-euc.fmt platex-euc.fmt
-sjis-formats=ptex-sjis.fmt platex-sjis.fmt
+euc-formats=ptex-euc.fmt platex-euc.fmt platex209-euc.fmt
+sjis-formats=ptex-sjis.fmt platex-sjis.fmt platex209-sjis.fmt
 
 ac_include ../../make/paths.mk
 
@@ -186,6 +186,14 @@
 	$(dumpenv) $(MAKE) progname=platex files="platex.ltx" prereq-check
 	$(dumpenv) ./ptex --ini --kanji=sjis --progname=platex --jobname=platex-sjis \\input platex.ltx </dev/null
 
+platex209-euc.fmt: ptex texmf.cnf
+	$(dumpenv) $(MAKE) progname=platex files="plplain.ini" prereq-check
+	$(dumpenv) ./ptex --ini --kanji=euc --progname=platex --jobname=platex209-euc \\input platex.ltx </dev/null
+
+platex209-sjis.fmt: ptex texmf.cnf
+	$(dumpenv) $(MAKE) progname=platex files="plplain.ini" prereq-check
+	$(dumpenv) ./ptex --ini --kanji=sjis --progname=platex --jobname=platex209-sjis \\input platex.ltx </dev/null
+
 # This is meant to be called recursively, with $(files) set.
 prereq-check: $(kpathsea_dir)/kpsewhich
 	$(dumpenv) $(kpathsea_dir)/kpsewhich --progname=$(progname) $(files) >/dev/null || $(MAKE) prereq-lose >/dev/null
@@ -222,17 +230,19 @@
 
 # The links to ptex for each format.
 install-links: install-programs $(bindir)
-	cd $(bindir) && (rm -f iniptex virptex platex; $(LN) ptex platex)
+	cd $(bindir) && (rm -f iniptex virptex platex platex209; $(LN) ptex platex ; $(LN) ptex platex209)
 
 # Always do plain.*, so examples from the TeXbook (etc.) will work.
 install-formats: $(formats) $(web2cdir)
 	for f in $(formats); do $(INSTALL_DATA) $$f $(web2cdir)/$$f; done
-	cd $(web2cdir) && (rm -f ptex-jis.fmt platex-jis.fmt ;\
+	cd $(web2cdir) && (rm -f ptex-jis.fmt platex-jis.fmt platex209-jis.fmt ;\
 		$(LN) ptex-euc.fmt ptex-jis.fmt ;\
-		$(LN) platex-euc.fmt platex-jis.fmt)
-	cd $(web2cdir) && (rm -f ptex.fmt platex.fmt ;\
+		$(LN) platex-euc.fmt platex-jis.fmt ;\
+		$(LN) platex209-euc.fmt platex209-jis.fmt)
+	cd $(web2cdir) && (rm -f ptex.fmt platex.fmt platex209.fmt ;\
 		$(LN) ptex-$(configkcode).fmt ptex.fmt ;\
-		$(LN) platex-$(configkcode).fmt platex.fmt )
+		$(LN) platex-$(configkcode).fmt platex.fmt ;\
+		$(LN) platex209-$(configkcode).fmt platex209.fmt)
 
 # Auxiliary files.
 install-data::
@@ -321,6 +331,7 @@
 	rm -fr failure
 	rm -f ptex.web ptex.ch ptex.p ptex.pool ptex.log ptex-euc.fmt ptex-sjis.fmt
 	rm -f platex.log platex-euc.fmt platex-sjis.fmt texsys.aux platex
+	rm -f platex209.log platex209-euc.fmt platex209-sjis.fmt platex209
 	rm -f tftopl.web tftopl.p
 	rm -f pltotf.web pltotf.p
 	rm -f pdvitype.web pdvitype.p

texlive-2007-kpse-extensions.patch:

--- NEW FILE texlive-2007-kpse-extensions.patch ---
--- texk/kpathsea/tex-file.c.kpse-extensions	2006-05-27 21:43:07.000000000 -0700
+++ texk/kpathsea/tex-file.c	2006-05-27 21:40:06.000000000 -0700
@@ -413,14 +413,16 @@
          times with token pasting, but it doesn't seem worth it.  */
     case kpse_gf_format:
       INIT_FORMAT ("gf", DEFAULT_GFFONTS, GF_ENVS);
-      SUFFIXES ("gf");
+#define GF_SUFFIXES "gf", "GF"
+      SUFFIXES (GF_SUFFIXES);
       FMT_INFO.suffix_search_only = true;
       FMT_INFO.binmode = true;
       break;
     case kpse_pk_format:
       init_maketex (format, "mktexpk", MKTEXPK_ARGS);
       INIT_FORMAT ("pk", DEFAULT_PKFONTS, PK_ENVS);
-      SUFFIXES ("pk");
+#define PK_SUFFIXES "pk", "PK"
+      SUFFIXES (PK_SUFFIXES);
       FMT_INFO.suffix_search_only = true;
       FMT_INFO.binmode = true;
       break;
@@ -434,77 +436,92 @@
       /* Must come before kpse_ofm_format. */
       init_maketex (format, "mktextfm", NULL);
       INIT_FORMAT ("tfm", DEFAULT_TFMFONTS, TFM_ENVS);
-      SUFFIXES (".tfm");
+#define TFM_SUFFIXES ".tfm", ".TFM"
+      SUFFIXES (TFM_SUFFIXES);
       FMT_INFO.suffix_search_only = true;
       FMT_INFO.binmode = true;
       break;
     case kpse_afm_format:
       INIT_FORMAT ("afm", DEFAULT_AFMFONTS, AFM_ENVS);
-      SUFFIXES (".afm");
+#define AFM_SUFFIXES ".afm", ".AFM"
+      SUFFIXES (AFM_SUFFIXES);
       break;
     case kpse_base_format:
       init_maketex (format, "mktexfmt", NULL);
       INIT_FORMAT ("base", DEFAULT_MFBASES, BASE_ENVS);
-      SUFFIXES (".base");
+#define BASE_SUFFIXES ".base", ".BASE"
+      SUFFIXES (BASE_SUFFIXES);
       FMT_INFO.binmode = true;
       break;
     case kpse_bib_format:
       INIT_FORMAT ("bib", DEFAULT_BIBINPUTS, BIB_ENVS);
-      SUFFIXES (".bib");
+#define BIB_SUFFIXES ".bib", ".BIB"
+      SUFFIXES (BIB_SUFFIXES);
       FMT_INFO.suffix_search_only = true;
       break;
     case kpse_bst_format:
       INIT_FORMAT ("bst", DEFAULT_BSTINPUTS, BST_ENVS);
-      SUFFIXES (".bst");
+#define BST_SUFFIXES ".bst", ".BST"
+      SUFFIXES (BST_SUFFIXES);
       break;
     case kpse_cnf_format:
       INIT_FORMAT ("cnf", DEFAULT_TEXMFCNF, CNF_ENVS);
-      SUFFIXES (".cnf");
+#define CNF_SUFFIXES ".cnf", ".CNF"
+      SUFFIXES (CNF_SUFFIXES);
       break;
     case kpse_db_format:
       INIT_FORMAT ("ls-R", DEFAULT_TEXMFDBS, DB_ENVS);
-#define LSR_SUFFIXES "ls-R", "ls-r"
+#define LSR_SUFFIXES "ls-R", "ls-r", "LS-R"
       SUFFIXES (LSR_SUFFIXES);
       FMT_INFO.path = remove_dbonly (FMT_INFO.path);
       break;
     case kpse_fmt_format:
       init_maketex (format, "mktexfmt", NULL);
       INIT_FORMAT ("fmt", DEFAULT_TEXFORMATS, FMT_ENVS);
-      SUFFIXES (".fmt");
-#define FMT_SUFFIXES ".efmt",".efm",".ofmt",".ofm",".oft",".eofmt",".eoft",".eof",".pfmt",".pfm",".epfmt",".epf",".xpfmt",".xpf",".afmt",".afm"
-      ALT_SUFFIXES (FMT_SUFFIXES);
+#define FMT_SUFFIXES ".fmt", ".FMT"
+      SUFFIXES (FMT_SUFFIXES);
+#define FMT_ALT_SUFFIXES ".efmt",".efm",".ofmt",".ofm",".oft",".eofmt",".eoft",".eof",".pfmt",".pfm",".epfmt",".epf",".xpfmt",".xpf",".afmt",".afm" \
+			 ".EFMT",".EFM",".OFMT",".OFM",".OFT",".EOFMT",".EOFT",".EOF",".PFMT",".PFM",".EPFMT",".EPF",".XPFMT",".XPF",".AFMT",".AFM"
+      ALT_SUFFIXES (FMT_ALT_SUFFIXES);
       FMT_INFO.binmode = true;
       break;
     case kpse_fontmap_format:
       INIT_FORMAT ("map", DEFAULT_TEXFONTMAPS, FONTMAP_ENVS);
-      SUFFIXES (".map");
+#define MAP_SUFFIXES ".map", ".MAP"
+      SUFFIXES (MAP_SUFFIXES);
       break;
     case kpse_mem_format:
       init_maketex (format, "mktexfmt", NULL);
       INIT_FORMAT ("mem", DEFAULT_MPMEMS, MEM_ENVS);
-      SUFFIXES (".mem");
+#define MEM_SUFFIXES ".mem", ".MEM"
+      SUFFIXES (MEM_SUFFIXES);
       FMT_INFO.binmode = true;
       break;
     case kpse_mf_format:
       init_maketex (format, "mktexmf", NULL);
       INIT_FORMAT ("mf", DEFAULT_MFINPUTS, MF_ENVS);
-      SUFFIXES (".mf");
+#define MF_SUFFIXES ".mf", ".MF"
+      SUFFIXES (MF_SUFFIXES);
       break;
     case kpse_mft_format:
       INIT_FORMAT ("mft", DEFAULT_MFTINPUTS, MFT_ENVS);
-      SUFFIXES (".mft");
+#define MFT_SUFFIXES ".mft", ".MFT"
+      SUFFIXES (MFT_SUFFIXES);
       break;
     case kpse_mfpool_format:
       INIT_FORMAT ("mfpool", DEFAULT_MFPOOL, MFPOOL_ENVS);
-      SUFFIXES (".pool");
+#define MFPOOL_SUFFIXES ".pool", ".POOL"
+      SUFFIXES (MFPOOL_SUFFIXES);
       break;
     case kpse_mp_format:
       INIT_FORMAT ("mp", DEFAULT_MPINPUTS, MP_ENVS);
-      SUFFIXES (".mp");
+#define MP_SUFFIXES ".mp", ".MP"
+      SUFFIXES (MP_SUFFIXES);
       break;
     case kpse_mppool_format:
       INIT_FORMAT ("mppool", DEFAULT_MPPOOL, MPPOOL_ENVS);
-      SUFFIXES (".pool");
+#define MPPOOL_SUFFIXES ".pool", ".POOL"
+      SUFFIXES (MPPOOL_SUFFIXES);
       break;
     case kpse_mpsupport_format:
       INIT_FORMAT ("MetaPost support", DEFAULT_MPSUPPORT, MPSUPPORT_ENVS);
@@ -512,49 +529,55 @@
     case kpse_ocp_format:
       init_maketex (format, "mkocp", NULL);
       INIT_FORMAT ("ocp", DEFAULT_OCPINPUTS, OCP_ENVS);
-      SUFFIXES (".ocp");
+#define OCP_SUFFIXES ".ocp", ".OCP"
+      SUFFIXES (OCP_SUFFIXES);
       FMT_INFO.suffix_search_only = true;
       FMT_INFO.binmode = true;
       break;
     case kpse_ofm_format:
       init_maketex (format, "mkofm", NULL);
       INIT_FORMAT ("ofm", DEFAULT_OFMFONTS, OFM_ENVS);
-#define OFM_SUFFIXES ".ofm", ".tfm"
+#define OFM_SUFFIXES ".ofm", ".tfm", ".OFM", ".TFM"
       SUFFIXES (OFM_SUFFIXES);
       FMT_INFO.suffix_search_only = true;
       FMT_INFO.binmode = true;
       break;
     case kpse_opl_format:
       INIT_FORMAT ("opl", DEFAULT_OPLFONTS, OPL_ENVS);
-      SUFFIXES (".opl");
+#define OPL_SUFFIXES ".opl", ".OPL"
+      SUFFIXES (OPL_SUFFIXES);
       FMT_INFO.suffix_search_only = true;
       break;
     case kpse_otp_format:
       INIT_FORMAT ("otp", DEFAULT_OTPINPUTS, OTP_ENVS);
-      SUFFIXES (".otp");
+#define OTP_SUFFIXES ".otp", ".OTP"
+      SUFFIXES (OTP_SUFFIXES);
       FMT_INFO.suffix_search_only = true;
       break;
     case kpse_ovf_format:
       INIT_FORMAT ("ovf", DEFAULT_OVFFONTS, OVF_ENVS);
-      SUFFIXES (".ovf");
+#define OVF_SUFFIXES ".ovf", ".OVF"
+      SUFFIXES (OVF_SUFFIXES);
       FMT_INFO.suffix_search_only = true;
       FMT_INFO.binmode = true;
       break;
     case kpse_ovp_format:
       INIT_FORMAT ("ovp", DEFAULT_OVPFONTS, OVP_ENVS);
-      SUFFIXES (".ovp");
+#define OVP_SUFFIXES ".ovp", ".OVP"
+      SUFFIXES (OVP_SUFFIXES);
       FMT_INFO.suffix_search_only = true;
       break;
     case kpse_pict_format:
       INIT_FORMAT ("graphic/figure", DEFAULT_TEXINPUTS, PICT_ENVS);
-#define PICT_SUFFIXES ".eps", ".epsi"
+#define PICT_SUFFIXES ".eps", ".epsi", ".EPS", ".EPSI"
       ALT_SUFFIXES (PICT_SUFFIXES);
       FMT_INFO.binmode = true;
       break;
     case kpse_tex_format:
       init_maketex (format, "mktextex", NULL);
       INIT_FORMAT ("tex", DEFAULT_TEXINPUTS, TEX_ENVS);
-      SUFFIXES (".tex");
+#define TEX_SUFFIXES ".tex", ".TEX"
+      SUFFIXES (TEX_SUFFIXES);
       /* We don't maintain a list of alternate TeX suffixes.  Such a list
          could never be complete.  */
       break;
@@ -562,7 +585,7 @@
       INIT_FORMAT ("PostScript header", DEFAULT_TEXPSHEADERS,
                    TEX_PS_HEADER_ENVS);
 /* Unfortunately, dvipsk uses this format for type1 fonts.  */
-#define TEXPSHEADER_SUFFIXES ".pro"
+#define TEXPSHEADER_SUFFIXES ".pro", ".PRO"
       ALT_SUFFIXES (TEXPSHEADER_SUFFIXES);
       FMT_INFO.binmode = true;
       break;
@@ -571,7 +594,8 @@
       break;
     case kpse_texpool_format:
       INIT_FORMAT ("texpool", DEFAULT_TEXPOOL, TEXPOOL_ENVS);
-      SUFFIXES (".pool");
+#define TEXPOOL_SUFFIXES ".pool", ".POOL"
+      SUFFIXES (TEXPOOL_SUFFIXES);
       break;
     case kpse_texsource_format:
       INIT_FORMAT ("TeX system sources", DEFAULT_TEXSOURCES, TEXSOURCE_ENVS);
@@ -582,13 +606,14 @@
       break;
     case kpse_type1_format:
       INIT_FORMAT ("type1 fonts", DEFAULT_T1FONTS, TYPE1_ENVS);
-#define TYPE1_SUFFIXES ".pfa", ".pfb"
+#define TYPE1_SUFFIXES ".pfa", ".pfb", ".PFA", ".PFB"
       SUFFIXES (TYPE1_SUFFIXES);
       FMT_INFO.binmode = true;
       break;
     case kpse_vf_format:
       INIT_FORMAT ("vf", DEFAULT_VFFONTS, VF_ENVS);
-      SUFFIXES (".vf");
+#define VF_SUFFIXES ".vf", ".VF"
+      SUFFIXES (VF_SUFFIXES);
       FMT_INFO.suffix_search_only = true;
       FMT_INFO.binmode = true;
       break;
@@ -597,7 +622,8 @@
       break;
     case kpse_ist_format:
       INIT_FORMAT ("ist", DEFAULT_INDEXSTYLE, IST_ENVS);
-      SUFFIXES (".ist");
+#define IST_SUFFIXES ".ist", ".IST"
+      SUFFIXES (IST_SUFFIXES);
       break;
     case kpse_truetype_format:
       INIT_FORMAT ("truetype fonts", DEFAULT_TTFONTS, TRUETYPE_ENVS);
@@ -632,26 +658,32 @@
       break;
     case kpse_web_format:
       INIT_FORMAT ("web", DEFAULT_WEBINPUTS, WEB_ENVS);
-      SUFFIXES (".web");
-      ALT_SUFFIXES (".ch");
+#define WEB_SUFFIXES ".web", ".WEB"
+      SUFFIXES (WEB_SUFFIXES);
+#define WEB_ALT_SUFFIXES ".ch", ".CH"
+      ALT_SUFFIXES (WEB_ALT_SUFFIXES);
       break;
     case kpse_cweb_format:
       INIT_FORMAT ("cweb", DEFAULT_CWEBINPUTS, CWEB_ENVS);
-#define CWEB_SUFFIXES ".w", ".web"
+#define CWEB_SUFFIXES ".w", ".web", ".W", ".WEB"
       SUFFIXES (CWEB_SUFFIXES);
-      ALT_SUFFIXES (".ch");
+#define CWEB_ALT_SUFFIXES ".ch", ".CH"
+      ALT_SUFFIXES (CWEB_ALT_SUFFIXES);
       break;
     case kpse_enc_format:
       INIT_FORMAT ("enc files", DEFAULT_ENCFONTS, ENC_ENVS);
-      SUFFIXES (".enc");
+#define ENC_SUFFIXES ".enc", ".ENC"
+      SUFFIXES (ENC_SUFFIXES);
       break;
     case kpse_cmap_format:
       INIT_FORMAT ("cmap files", DEFAULT_CMAPFONTS, CMAP_ENVS);
-      SUFFIXES (".cmap");      
+#define CMAP_SUFFIXES ".cmap", ".CMAP"
+      SUFFIXES (CMAP_SUFFIXES);
       break;
     case kpse_sfd_format:
       INIT_FORMAT ("subfont definition files", DEFAULT_SFDFONTS, SFD_ENVS);
-      SUFFIXES (".sfd");
+#define SFD_SUFFIXES ".sfd", ".SFD"
+      SUFFIXES (SFD_SUFFIXES);
       break;
     case kpse_opentype_format:
       INIT_FORMAT ("opentype fonts", DEFAULT_OPENTYPEFONTS, OPENTYPE_ENVS);
@@ -663,7 +695,8 @@
       break;
     case kpse_lig_format:
       INIT_FORMAT ("lig files", DEFAULT_LIGFONTS, LIG_ENVS);
-      SUFFIXES (".lig");
+#define LIG_SUFFIXES ".lig", ".LIG"
+      SUFFIXES (LIG_SUFFIXES);
       break;
     case kpse_texmfscripts_format:
       INIT_FORMAT ("texmfscripts", DEFAULT_TEXMFSCRIPTS, TEXMFSCRIPTS_ENVS);

texlive-2007-kuesterei-man.patch:

--- NEW FILE texlive-2007-kuesterei-man.patch ---
diff -ur tetex-src-3.0/texk/dvipdfm/dvipdft.1 tetex-src-3.0-kuesterei_man/texk/dvipdfm/dvipdft.1
--- tetex-src-3.0/texk/dvipdfm/dvipdft.1	2004-05-14 17:42:14.000000000 -0700
+++ tetex-src-3.0-kuesterei_man/texk/dvipdfm/dvipdft.1	2006-05-12 00:23:31.000000000 -0700
@@ -29,7 +29,7 @@
 .PP 
 \fBdvipdft\fP was written by Mark A. Wicks and Thomas Esser.
 .PP 
-This manual page was written by Frank Küster <frank at kuesterei\&.ch>,
+This manual page was written by Frank Küster <frank at kuesterei\&.ch>,
 for the Debian GNU/Linux system\&.  It may be used by others without
 contacting the author\&.  Any mistakes or omissions in the manual page
 are my fault; inquiries about or corrections to this manual page
diff -ur tetex-src-3.0/texk/dvipdfm/ebb.1 tetex-src-3.0-kuesterei_man/texk/dvipdfm/ebb.1
--- tetex-src-3.0/texk/dvipdfm/ebb.1	2004-05-09 00:06:02.000000000 -0700
+++ tetex-src-3.0-kuesterei_man/texk/dvipdfm/ebb.1	2006-05-12 00:24:22.000000000 -0700
@@ -28,7 +28,7 @@
 .PP 
 \fBebb\fP was written by Mark A. Wicks.
 .PP 
-This manual page was written by Frank Küster <frank at kuesterei\&.ch>,
+This manual page was written by Frank Küster <frank at kuesterei\&.ch>,
 for the Debian GNU/Linux system\&.  It may be used and modified by
 others without contacting the author\&.  Any mistakes or omissions in
 the manual page are my fault; inquiries about or corrections to this
diff -ur tetex-src-3.0/texk/tetex/kpsewhere.man tetex-src-3.0-kuesterei_man/texk/tetex/kpsewhere.man
--- tetex-src-3.0/texk/tetex/kpsewhere.man	2005-01-31 09:51:58.000000000 -0800
+++ tetex-src-3.0-kuesterei_man/texk/tetex/kpsewhere.man	2006-05-12 00:25:46.000000000 -0700
@@ -42,7 +42,7 @@
 <te at dbs\&.uni-hannover\&.de>, in 2003 and 2004\&.  \fBkpsewhere\fP
 is in the public domain\&.
 .PP 
-This manual page was written by Frank Küster <frank at kuesterei\&.ch>,
+This manual page was written by Frank Küster <frank at kuesterei\&.ch>,
 for the Debian GNU/Linux system\&.  It is also in the public domain
 and may be used and changed by others without contacting the author\&.
 Any mistakes or omissions in the manual page are my fault; inquiries

texlive-2007-makej.patch:

--- NEW FILE texlive-2007-makej.patch ---
--- tetex-src-2.0.2/texk/web2c/web2c/Makefile.in.makej	2002-10-12 13:37:39.000000000 +0200
+++ tetex-src-2.0.2/texk/web2c/web2c/Makefile.in	2005-01-07 10:48:22.931698496 +0100
@@ -25,13 +25,14 @@
 
 # We use y_tab.* for the sake of MS-DOS.
 main.o: main.c y_tab.h
-y_tab.c y_tab.h: web2c.y
+y_tab.c: y_tab.h
+y_tab.h: web2c.y
 	@echo Expect one shift/reduce conflict.
 	$(YACC) -d -v $(srcdir)/web2c.y
 	-test -f y.tab.c && mv -f y.tab.c y_tab.c
 	-test -f y.tab.h && mv -f y.tab.h y_tab.h
 $(LEX_OUTPUT_ROOT).o: y_tab.h
-$(LEX_OUTPUT_ROOT).c: web2c.l
+$(LEX_OUTPUT_ROOT).c: y_tab.h web2c.l
 	$(LEX) $(srcdir)/web2c.l
 
 fixwrites: fixwrites.o
--- tetex-src-2.0.2/texk/web2c/otps/Makefile.in.makej	2000-06-21 00:27:56.000000000 +0200
+++ tetex-src-2.0.2/texk/web2c/otps/Makefile.in	2005-01-07 10:49:37.588348960 +0100
@@ -21,12 +21,13 @@
 	$(kpathsea_link) $(otp2ocp_objects) $(LEXLIB) $(LOADLIBES) 
 
 otp2ocp.o: otp2ocp.c y_tab.h
-y_tab.c y_tab.h: otp.y
+y_tab.c: y_tab.h
+y_tab.h: otp.y
 	$(YACC) -d -v $(srcdir)/otp.y
 	-test -f y.tab.c && mv -f y.tab.c y_tab.c
 	-test -f y.tab.h && mv -f y.tab.h y_tab.h
 $(LEX_OUTPUT_ROOT).o: otp.h
-$(LEX_OUTPUT_ROOT).c: otp.l
+$(LEX_OUTPUT_ROOT).c: y_tab.h otp.l
 	$(LEX) $(srcdir)/otp.l
 
 outocp: outocp.o
--- tetex-src-2.0.2/texk/web2c/omegafonts/Makefile.in.makej	2001-11-10 14:42:37.000000000 +0100
+++ tetex-src-2.0.2/texk/web2c/omegafonts/Makefile.in	2005-01-07 10:44:36.556112816 +0100
@@ -34,12 +34,13 @@
 	$(kpathsea_link) $(omfonts_objects) $(LEXLIB) $(LOADLIBES) 
 
 omfonts.o: omfonts.c y_tab.h
-y_tab.c y_tab.h: pl.y
+y_tab.c: y_tab.h
+y_tab.h: pl.y
 	$(YACC) -d -v $(srcdir)/pl.y
 	-test -f y.tab.c && mv -f y.tab.c y_tab.c
 	-test -f y.tab.h && mv -f y.tab.h y_tab.h
 $(LEX_OUTPUT_ROOT).o: parser.h
-$(LEX_OUTPUT_ROOT).c: pl.l
+$(LEX_OUTPUT_ROOT).c: y_tab.h pl.l
 	$(LEX) $(srcdir)/pl.l
 
 

texlive-2007-pdvips.patch:

--- NEW FILE texlive-2007-pdvips.patch ---
--- dvipsk-p1.7a.patch.orig	2005-10-17 17:03:56.000000000 +0900
+++ dvipsk-p1.7a.patch	2007-08-16 14:51:19.000000000 +0900
@@ -1236,37 +1236,30 @@
      }
  
 diff -Nur dvipsk.orig/dvips.c dvipsk/dvips.c
---- dvipsk.orig/dvips.c	Sun Jan 30 22:17:21 2005
-+++ dvipsk/dvips.c	Thu Mar  3 11:11:55 2005
-@@ -44,12 +44,18 @@
- #include descrip
- #endif
+--- dvipsk.orig/dvips.c	2007-08-16 14:39:44.000000000 +0900
++++ dvipsk/dvips.c	2007-08-16 14:44:03.000000000 +0900
+@@ -45,6 +45,12 @@
+ #define DEFRES (600)
  #endif
+ 
 +#ifdef __APPLE__ /* for Mac OS X, T. Uchiyama */
 +#include <sys/types.h>
 +#include <sys/time.h>
 +#include <sys/resource.h>
 +#endif
++
  /*
   *   First we define some globals.
   */
- #ifdef VMS
-     static char ofnme[252],infnme[252],pap[40],thh[20];
- #endif
+@@ -55,6 +61,7 @@
+ /* PS fonts fully downloaded as headers */ 
+ char *downloadedpsnames[DOWNLOADEDPSSIZE];  
+ 
 +Boolean SJIS ;                /* KANJI code */
+ int unused_top_of_psnames ;   /* unused top number of downloadedpsnames[#] */
  fontdesctype *fonthead ;      /* list of all fonts mentioned so far */
  fontdesctype *curfnt ;        /* the currently selected font */
- sectiontype *sections ;       /* sections to process document in */
-@@ -64,7 +70,7 @@
- Boolean cropmarks ;           /* add cropmarks? */
- Boolean abspage = 0 ;         /* are page numbers absolute? */
- Boolean tryepsf = 0 ;         /* should we try to make it espf? */
--Boolean secure = 0 ;          /* make safe for suid */
-+Boolean secure = 1 ;          /* make safe for suid */
- int collatedcopies = 1 ;      /* how many collated copies? */
- int sectioncopies = 1 ;       /* how many times to repeat each section? */
- integer pagecopies = 1 ;          /* how many times to repeat each page? */
-@@ -186,6 +192,7 @@
+@@ -194,6 +201,7 @@
  char xdig[256];                 /* table for reading hexadecimal digits */
  char banner[] = BANNER ;        /* our startup message */
  char banner2[] = BANNER2 ;      /* our second startup message */
@@ -1274,7 +1267,7 @@
  Boolean noenv = 0 ;             /* ignore PRINTER envir variable? */
  Boolean dopprescan = 0 ;        /* do we do a scan before the prescan? */
  extern int dontmakefont ;
-@@ -284,6 +291,7 @@
+@@ -292,6 +300,7 @@
  #else
  "                                   Z*  Compress bitmap fonts           ",
  #endif
@@ -1282,7 +1275,7 @@
  /* "-   Interactive query of options", */
  "    # = number   f = file   s = string  * = suffix, `0' to turn off    ",
  "    c = comma-separated dimension pair (e.g., 3.2in,-32.1cm)           ",
-@@ -294,16 +302,21 @@
+@@ -302,16 +311,21 @@
  {
     char **p;
     FILE *f = status == 0 ? stdout : stderr;
@@ -1302,30 +1295,31 @@
 +*/
 +   fputs ("Email bug reports to www-ptex at ascii.co.jp.\n", f);
  }
- /*
-  *   This error routine prints an error message; if the first
-@@ -440,6 +453,7 @@
-    for (s="abcdef"; *s!=0; s++)
-       xdig[(int)*s] = i++;
+ 
+ void
+@@ -461,6 +475,7 @@
+    for(i=0 ; i < DOWNLOADEDPSSIZE; i++)
+       downloadedpsnames[i] = NULL;
     morestrings() ;
 +   SJIS = 0;
     maxpages = 100000 ;
     numcopies = 1 ;
     iname = fulliname = strings ;
-@@ -552,6 +566,12 @@
-    int firstext = -1 ;
+@@ -574,6 +589,13 @@
  #endif
-    register sectiontype *sects ;
+    sectiontype *sects ;
+ 
 +#ifdef __APPLE__ /* for Mac OS X, T. Uchiyama */
 +   struct rlimit rl;
 +   getrlimit(RLIMIT_STACK, &rl);
 +   rl.rlim_cur = 2048 * 1024;
 +   setrlimit(RLIMIT_STACK, &rl);
 +#endif
- 
++
  #ifdef KPATHSEA
     kpse_set_program_name (argv[0], "dvips");
-@@ -618,12 +638,12 @@
+    kpse_set_program_enabled (kpse_pk_format, MAKE_TEX_PK_BY_DEFAULT, kpse_src_compile);
+@@ -639,12 +661,12 @@
          exit (0);
        }
        if (argc == 2 && strncmp(argv[1], "-?", 2) == 0) {
@@ -1340,8 +1334,8 @@
           exit(0);
        }
     }
-@@ -747,10 +767,13 @@
-                secure = (*p != '0') ;
+@@ -790,10 +812,13 @@
+                   secure_option = 1 ; /* Never used */
                 break ;
  case 'S':
 -               if (*p == 0 && argv[i+1])
@@ -1358,7 +1352,7 @@
                 break ;
  case 'm' :
                 if (STREQ (p, "ode") && argv[i+1]) {
-@@ -892,7 +915,7 @@
+@@ -935,7 +960,7 @@
                    paperfmt = p ;
                 break ;
  case 'v':
@@ -1367,7 +1361,7 @@
                  exit (0);
                  break;
  case 'x' : case 'y' :
-@@ -1070,7 +1093,7 @@
+@@ -1113,7 +1138,7 @@
        }
        papsizes = (struct papsiz *)revlist((void *)papsizes) ;
        if (queryoptions != 0) {            /* get new options */
@@ -1376,38 +1370,40 @@
           help(1) ;
           queryargs();
           if (qargc == 1)
-@@ -1108,7 +1131,7 @@
-    getpsinfo((char *)NULL) ;
+@@ -1152,11 +1177,11 @@
     revpslists() ;
-    if (!quiet)
--      (void)fprintf(stderr, "%s %s\n", banner, banner2) ;
-+      (void)fprintf(stderr, "%s\n%s\n", banner, banner2) ;
+    if (dvips_debug_flag) {
+       if (!quiet)
+-         (void)fprintf(stderr, "\n%s %s\n", banner, banner2) ;
++         (void)fprintf(stderr, "\n%s\n%s\n", banner, banner2) ;
+       prettycolumn = 0 ;
+    } else {
+       if (!quiet)
+-         (void)fprintf(stderr, "%s %s\n", banner, banner2) ;
++         (void)fprintf(stderr, "%s\n%s\n", banner, banner2) ;
+    }
     if (*iname) {
        dvifile = fopen(iname, READBIN) ;
- /*
 diff -Nur dvipsk.orig/dvips.h dvipsk/dvips.h
---- dvipsk.orig/dvips.h	Sun Jan 30 22:17:15 2005
-+++ dvipsk/dvips.h	Mon Oct 17 16:57:18 2005
-@@ -10,10 +10,15 @@
-  */
- 
+--- dvipsk.orig/dvips.h	2007-08-16 14:39:44.000000000 +0900
++++ dvipsk/dvips.h	2007-08-16 14:49:19.000000000 +0900
+@@ -7,9 +7,12 @@
  /*   This file is the header for dvips's global data structures. */
-+#define CREATIONDATE
-+
-+#define MAX_CODE 65536
  
+ #define CREATIONDATE
++#define MAX_CODE 65536
  #define BANNER \
--"This is dvips(k) 5.95a Copyright 2005 Radical Eye Software"
+-"This is dvips(k) 5.96.1 Copyright 2007 Radical Eye Software"
 -#define BANNER2 "(www.radicaleye.com)"
 +"This is dvips(k) p1.7a Copyright 2005 ASCII Corp.(www-ptex at ascii.co.jp)"
 +#define BANNER2 \
-+"based on dvips(k) 5.95a Copyright 2005 Radical Eye Software (www.radicaleye.com)"
++"This is dvips(k) 5.96.1 Copyright 2007 Radical Eye Software (www.radicaleye.com)"
 +#define WEBURL "(www.radicaleye.com)"
  #ifdef KPATHSEA
  #include "config.h"
  #include "debug.h"
-@@ -60,9 +65,9 @@
- #define STRINGSIZE (200000)  /* maximum total chars in strings in program */
+@@ -56,9 +59,9 @@
+ #define STRINGSIZE (200000) /* maximum total chars in strings in program */
  #define RASTERCHUNK (8192)  /* size of chunk of raster */
  #define MINCHUNK (240)      /* minimum size char to get own raster */
 -#define STACKSIZE (350)     /* maximum stack size for dvi files */
@@ -1417,9 +1413,9 @@
 +#define MAXFRAME (50)       /* maximum depth of virtual font recursion */
 +#define MAXFONTHD (1024)     /* number of unique names of included fonts */
  #define STDOUTSIZE (75)     /* width of a standard output line */
+ #define DOWNLOADEDPSSIZE (1000)  /* max number of downloaded fonts to check */
  /*
-  *   Other constants, which define printer-dependent stuff.
-@@ -166,7 +171,7 @@
+@@ -163,7 +166,7 @@
   *   psfile.  It can be 0, PREVPAGE, THISPAGE, or EXISTS.
   */
  typedef struct tfd {
@@ -1428,7 +1424,7 @@
     halfword dpi, loadeddpi ;
     halfword alreadyscaled ;
     halfword psname ;
-@@ -181,6 +186,7 @@
+@@ -178,6 +181,7 @@
     struct tfd *nextsize;
     char *scalename;
     chardesctype *chardesc ;

texlive-2007-ptex-3.1.10.patch:

--- NEW FILE texlive-2007-ptex-3.1.10.patch ---
--- ptex-src-3.1.10/jbibtex.ch.orig	2006-05-29 11:27:25.000000000 +0900
+++ ptex-src-3.1.10/jbibtex.ch	2007-03-02 19:00:49.000000000 +0900
@@ -1504,7 +1504,7 @@
     end; {Else it was a flag; |getopt| has already done the assignment.}
   until getopt_return_val = -1;
   if (version_switch) then
-    print_version_and_exit (banner, 'Oren Patashnik', nil);
+    print_version_and_exit (banner, 'Oren Patashnik', nil, nil);
 
   {Now |optind| is the index of first non-option on the command line.
    We must have one remaining argument.}
--- ptex-src-3.1.10/pdvitype.ch.orig	2005-03-07 15:30:44.000000000 +0900
+++ ptex-src-3.1.10/pdvitype.ch	2007-03-02 19:00:11.000000000 +0900
@@ -1021,7 +1021,7 @@
       usage_help (PDVITYPE_HELP, nil);
 
     end else if argument_is ('version') then begin
-      print_version_and_exit (banner, nil, 'D.E. Knuth');
+      print_version_and_exit (banner, nil, 'D.E. Knuth', nil);
     
     end else if argument_is ('output-level') then begin
       out_mode := atou (optarg);
--- ptex-src-3.1.10/pltotf.ch.orig	2006-07-18 17:03:33.000000000 +0900
+++ ptex-src-3.1.10/pltotf.ch	2007-03-02 18:59:39.000000000 +0900
@@ -427,7 +427,7 @@
 @z
 @x
     end else if argument_is ('version') then begin
-      print_version_and_exit (banner, nil, 'D.E. Knuth');
+      print_version_and_exit (banner, nil, 'D.E. Knuth', nil);
 
     end; {Else it was a flag; |getopt| has already done the assignment.}
   until getopt_return_val = -1;
@@ -441,7 +441,7 @@
     end; {Else it was a flag; |getopt| has already done the assignment.}
   until getopt_return_val = -1;
   if (version_switch) then
-    print_version_and_exit (banner, nil, 'D.E. Knuth');
+    print_version_and_exit (banner, nil, 'D.E. Knuth', nil);
 @z
 
 @x
--- ptex-src-3.1.10/ptexextra.c.orig	2006-05-29 11:27:25.000000000 +0900
+++ ptex-src-3.1.10/ptexextra.c	2007-03-02 14:48:05.000000000 +0900
@@ -953,7 +953,7 @@
     } /* Else it was a flag; getopt has already done the assignment.  */
   }
   if (version_switch) {
-    printversionandexit (BANNER, COPYRIGHT_HOLDER, AUTHOR);
+    printversionandexit (BANNER, COPYRIGHT_HOLDER, AUTHOR, nil);
   }
 }
 
@@ -1718,7 +1718,7 @@
 }
 
 strnumber
-getjobname()
+getjobname(strnumber curname)
 {
     strnumber ret = curname;
     if (job_name != NULL)
--- ptex-src-3.1.10/tftopl.ch.orig	2006-07-18 17:03:33.000000000 +0900
+++ ptex-src-3.1.10/tftopl.ch	2007-03-02 18:58:41.000000000 +0900
@@ -374,7 +374,7 @@
 @z
 @x
     end else if argument_is ('version') then begin
-      print_version_and_exit (banner, nil, 'D.E. Knuth');
+      print_version_and_exit (banner, nil, 'D.E. Knuth', nil);
 @y
     end else if argument_is ('version') then begin
       version_switch := true;
@@ -389,7 +389,7 @@
     end; {Else it was a flag; |getopt| has already done the assignment.}
   until getopt_return_val = -1;
   if (version_switch) then
-    print_version_and_exit (banner, nil, 'D.E. Knuth');
+    print_version_and_exit (banner, nil, 'D.E. Knuth', nil);
 @z
 
 @x
--- ptex-src-3.1.10/version.c.orig	2006-05-29 11:27:25.000000000 +0900
+++ ptex-src-3.1.10/version.c	2007-03-02 15:38:03.000000000 +0900
@@ -3,8 +3,9 @@
 
 /*** lib/printversion.c:  Output for the option --version. ***/
 void
-printversionandexit P3C(const_string, banner,
-                        const_string, copyright_holder,  const_string, author)
+printversionandexit P4C(const_string,  banner,
+                        const_string, copyright_holder,  const_string, author,
+                        char*, extra_info)
 {
   extern string versionstring;  /* from web2c/lib/version.c */
   extern string based_prog_name;

texlive-2007-pxdvi.patch:

--- NEW FILE texlive-2007-pxdvi.patch ---
--- texlive-2007/texk/configure.in.pxdvi	2007-02-22 11:12:57.000000000 +0900
+++ texlive-2007/texk/configure.in	2007-02-22 11:16:07.000000000 +0900
@@ -76,6 +76,7 @@
  tth
  xdv2pdf
  xdvik
+ pxdvik
  xdvipdfmx
 '
 
--- texlive-2007/texk/pxdvik/vfontmap.c.pxdvi	2007-02-22 11:12:58.000000000 +0900
+++ texlive-2007/texk/pxdvik/vfontmap.c	2007-02-22 11:12:58.000000000 +0900
@@ -8,7 +8,7 @@
 #include "vfontmap.h"
 #include "kpathsea/tex-file.h"
 #ifndef	DEFAULT_FONTMAP
-#define	DEFAULT_FONTMAP	"/usr/local/share/texmf/xdvi/vfontmap"
+#define	DEFAULT_FONTMAP	"/usr/share/texmf/pxdvi/vfontmap"
 #endif
 #ifdef	KANJI
 #if defined(USE_ZEIT) && defined(USE_VFONTMAP)
--- texlive-2007/texk/pxdvik/withenable.ac.pxdvi	2007-02-22 11:12:58.000000000 +0900
+++ texlive-2007/texk/pxdvik/withenable.ac	2007-02-22 11:12:58.000000000 +0900
@@ -83,9 +83,9 @@
 fi],
 AC_DEFINE(A4))
 
-VFONTMAP='$(texmf)/xdvi/vfontmap'
+VFONTMAP='$(texmf)/pxdvi/vfontmap'
 AC_ARG_WITH(vfontmap,
-[  --with-vfontmap=FILE    Use FILE as default vfontmap (default ${texmf}/xdvi/vfontmap)],
+[  --with-vfontmap=FILE    Use FILE as default vfontmap (default ${texmf}/pxdvi/vfontmap)],
 [VFONTMAP="$withval"])
 AC_SUBST(VFONTMAP)
 
--- texlive-2007/texk/pxdvik/xdvi-config.h.pxdvi	2007-02-22 11:12:58.000000000 +0900
+++ texlive-2007/texk/pxdvik/xdvi-config.h	2007-02-22 11:12:58.000000000 +0900
@@ -35,7 +35,7 @@
 #define DEFAULT_FONTCONF ""
 #define USE_VFONTMAP
 #ifndef DEFAULT_FONTMAP
-#define DEFAULT_FONTMAP "/usr/local/share/texmf/xdvi/vfontmap"
+#define DEFAULT_FONTMAP "/usr/share/texmf/pxdvi/vfontmap"
 #endif /* DEFAULT_FONTMAP */
 #define NTTZEIT
 #endif /* KANJI */
--- texlive-2007/texk/pxdvik/texmf/XDvi.pxdvi	2007-02-22 11:12:58.000000000 +0900
+++ texlive-2007/texk/pxdvik/texmf/XDvi	2007-02-22 11:12:58.000000000 +0900
@@ -137,7 +137,7 @@
 !!!------------------------------------------------------------------------------
 !!! note: when i18n'ed, *font and *fontSet should have same size of font
 *international: true
-*inputMethod: kinput2
+*inputMethod: SCIM
 *preeditType: OverTheSpot,OffTheSpot,Root
 !!! note: xdviSelFile can not be i18n'ed (bug?)
 xdviSelFile*international: false
--- texlive-2007/texk/pxdvik/Makefile.in.pxdvi	2007-02-22 11:12:57.000000000 +0900
+++ texlive-2007/texk/pxdvik/Makefile.in	2007-02-22 11:12:58.000000000 +0900
@@ -11,6 +11,9 @@
 
 all_subdirs = gui
 
+dvipsdir = $(texmf)/pdvips
+psheaderdir = $(dvipsdir)
+
 CPP = @CPP@
 
 # Make `#include <X11/...>' and `-lX...' work.
@@ -140,8 +143,8 @@
 	rm -f $(scriptdir)/o at wrapper_script@
 	ln -s @wrapper_script@ $(scriptdir)/o at wrapper_script@
 ### fix wrong CVS permissions for shell script
-	$(INSTALL_SCRIPT) $(srcdir)/xdvizilla $(scriptdir)/xdvizilla
-	chmod +x $(scriptdir)/xdvizilla
+	$(INSTALL_SCRIPT) $(srcdir)/xdvizilla $(scriptdir)/pxdvizilla
+	chmod +x $(scriptdir)/pxdvizilla
 
 uninstall-exec:
 	for p in @final_exec_name@; do rm -f $(bindir)/$$p; done
@@ -149,42 +152,42 @@
 
 install-data: $(manpage).1 pixmaps/toolbar.xpm pixmaps/toolbar2.xpm
 	$(SHELL) $(top_srcdir)/../mkinstalldirs $(man1dir) 
-	$(SHELL) $(top_srcdir)/../mkinstalldirs $(texmf)/xdvi/pixmaps
+	$(SHELL) $(top_srcdir)/../mkinstalldirs $(texmf)/pxdvi/pixmaps
 	$(INSTALL_DATA) $(manpage).1 $(man1dir)/$(manpage).$(manext)
 	rm -f $(man1dir)/o$(manpage).$(manext)
 	ln -s $(manpage).$(manext) $(man1dir)/o$(manpage).$(manext)
-	$(INSTALL_DATA) $(srcdir)/texmf/XDvi $(texmf)/xdvi/XDvi
-	$(INSTALL_DATA) $(srcdir)/pixmaps/toolbar.xpm $(srcdir)/pixmaps/toolbar2.xpm $(texmf)/xdvi/pixmaps
+	$(INSTALL_DATA) $(srcdir)/texmf/XDvi $(texmf)/pxdvi/XDvi
+	$(INSTALL_DATA) $(srcdir)/pixmaps/toolbar.xpm $(srcdir)/pixmaps/toolbar2.xpm $(texmf)/pxdvi/pixmaps
 	if \
-	    grep 'original xdvi.cfg --' $(texmf)/xdvi/xdvi.cfg >/dev/null 2>&1 \
-	    || test ! -r $(texmf)/xdvi/xdvi.cfg; \
+	    grep 'original xdvi.cfg --' $(texmf)/pxdvi/xdvi.cfg >/dev/null 2>&1 \
+	    || test ! -r $(texmf)/pxdvi/xdvi.cfg; \
 	then \
-	    $(INSTALL_DATA) $(srcdir)/texmf/xdvi.cfg $(texmf)/xdvi/xdvi.cfg; \
+	    $(INSTALL_DATA) $(srcdir)/texmf/xdvi.cfg $(texmf)/pxdvi/xdvi.cfg; \
 	else \
 	    true; \
 	fi
 	$(INSTALL_DATA) $(srcdir)/xdvizilla.1 $(man1dir)/xdvizilla.$(manext)
-	$(INSTALL_DATA) $(srcdir)/vfontmap.sample $(texmf)/xdvi/
+	$(INSTALL_DATA) $(srcdir)/vfontmap.sample $(texmf)/pxdvi/
 	if test ! -f $(VFONTMAP); then \
 	  $(INSTALL_DATA) $(srcdir)/vfontmap.sample $(VFONTMAP); \
 	fi
 
 uninstall-data:
 	rm -f $(man1dir)/$(manpage).$(manext) $(man1dir)/xdvizilla.$(manext) \
-		$(scriptdir)/xdvizilla \
-		$(texmf)/xdvi/pixmaps/toolbar.xpm $(texmf)/xdvi/pixmaps/toolbar2.xpm \
-		$(texmf)/xdvi/XDvi
+		$(scriptdir)/pxdvizilla \
+		$(texmf)/pxdvi/pixmaps/toolbar.xpm $(texmf)/pxdvi/pixmaps/toolbar2.xpm \
+		$(texmf)/pxdvi/XDvi
 	if \
-	    head -n 1 $(texmf)/xdvi/xdvi.cfg | grep 'original xdvi.cfg --' >/dev/null 2>&1 \
-	    || test ! -r $(texmf)/xdvi/xdvi.cfg; \
+	    head -n 1 $(texmf)/pxdvi/xdvi.cfg | grep 'original xdvi.cfg --' >/dev/null 2>&1 \
+	    || test ! -r $(texmf)/pxdvi/xdvi.cfg; \
 	then \
-	    rm -f $(texmf)/xdvi/xdvi.cfg; \
+	    rm -f $(texmf)/pxdvi/xdvi.cfg; \
 		else \
 	    true; \
 	fi
-	rmdir $(texmf)/xdvi/pixmaps
+	rmdir $(texmf)/pxdvi/pixmaps
 
-distname = xdvik
+distname = pxdvik
 program_files = *.1.in *.ac xdvi.icon xdvi.FAQ psheader.txt mksedscript \
   MOTIF
 version_files = xdvi.c
--- texlive-2007/texk/pxdvik/xdvi-sh.in.pxdvi	2006-01-18 06:41:51.000000000 +0900
+++ texlive-2007/texk/pxdvik/xdvi-sh.in	2007-02-22 11:12:58.000000000 +0900
@@ -28,7 +28,7 @@
     NAMEOPT='-name xdvi';;
 esac
 
-xdviappfile=`kpsewhich -progname=xdvi --format='other text files' XDvi`
+xdviappfile=`kpsewhich -progname=pxdvi --format='other text files' XDvi`
 if test -n "$xdviappfile"; then
   xdviappdir=`dirname "$xdviappfile"`
   xdviapppath="${xdviappdir}/%l_%t/%N:${xdviappdir}/%N"

texlive-2007-tkdep.patch:

--- NEW FILE texlive-2007-tkdep.patch ---
--- tetex-src-3.0/texk/tetex/texdoctk.tkdep	2004-11-06 00:12:14.000000000 +0100
+++ tetex-src-3.0/texk/tetex/texdoctk	2005-07-18 14:57:54.132164864 +0200
@@ -9,7 +9,11 @@
 # and the full disclaimer.
 ###############################################################################
 use strict;
-use Tk;
+BEGIN {
+  eval {require Tk;};
+  die "This program requires perl-Tk. Try to look in fedora-extras.\n" if $@;
+  import Tk;
+}
 use Getopt::Long;
 Getopt::Long::config('bundling');
 use File::Basename;

texlive-2007-tmpcleanup.patch:

--- NEW FILE texlive-2007-tmpcleanup.patch ---
--- TeX/texk/tetex/texconfig.tmpcleanup	2006-05-24 17:21:48.000000000 -0700
+++ TeX/texk/tetex/texconfig	2006-05-24 17:23:55.000000000 -0700
@@ -38,7 +38,8 @@
   TEXSOURCES TFMFONTS TRFONTS TTFONTS VFFONTS WEB2C WEBINPUTS
 "
 tmpdir=`mktemp -d "${TMP-/tmp}/$progname.XXXXXX"` || exit 1
-needsCleanup=false
+trap -- "cleanup;" EXIT 1 2 3 7 13 15
+needsCleanup=true
 lastUpdatedFile=
 
 ###############################################################################
--- TeX/texk/tetex/updmap.tmpcleanup	2006-05-24 17:24:18.000000000 -0700
+++ TeX/texk/tetex/updmap	2006-05-24 17:26:39.000000000 -0700
@@ -1288,7 +1288,7 @@
   texhashEnabled=true
   mkmapEnabled=true
   verbose=true
-  needsCleanup=false
+  needsCleanup=true
 
   cnfFileShort=updmap.cfg
   cnfFile=
@@ -1296,7 +1296,8 @@
   : ${TEXMFMAIN=`kpsewhich -var-value=TEXMFMAIN`}
 
   tmpdir=`mktemp -d ${TMP-/tmp}/$progname.XXXXXX` || \
-       abort "could not create directory"
+       abort "could not create temporary directory"
+  trap -- "cleanup;" EXIT 1 2 3 7 13 15
   tmp1=$tmpdir/a
   tmp2=$tmpdir/b
   tmp3=$tmpdir/c
--- TeX/texk/tetex/fmtutil.tmpcleanup	2006-05-24 17:27:13.000000000 -0700
+++ TeX/texk/tetex/fmtutil	2006-05-24 17:30:36.000000000 -0700
@@ -349,11 +349,13 @@
   destdir=     # global variable: where do we put the format files?
   cnf_file=    # global variable: full name of the config file
   cmd=         # desired action from command line
-  needsCleanup=false
+  needsCleanup=true
   need_find_hyphenfile=false
   cfgparam=
   cfgmaint=
-  tmpdir=`mktemp -d ${TMP-/tmp}/$progname.XXXXXX`
+  tmpdir=`mktemp -d ${TMP-/tmp}/$progname.XXXXXX` || \
+      abort "could not create temporary directory"
+  trap -- "cleanup;" EXIT 1 2 3 7 13 15
   verboseFlag=true
 
   # mktexfmtMode: if called as mktexfmt, set to true. Will echo the generated

texlive-2007-xdvi-keepflag.patch:

--- NEW FILE texlive-2007-xdvi-keepflag.patch ---
--- tetex-src-3.0/texk/xdvik/events.c.xdvi-keepflag	2004-11-29 17:45:11.000000000 -0700
+++ tetex-src-3.0/texk/xdvik/events.c	2005-11-02 17:02:19.000000000 -0700
@@ -696,10 +696,12 @@ home(wide_bool scrl)
     {
 	int value;
 
-	value = (globals.page.w - mane.width) / 2;
-	if (value > resource.sidemargin_int / mane.shrinkfactor)
-	    value = resource.sidemargin_int / mane.shrinkfactor;
-	(void)set_bar_value(globals.widgets.x_bar, value, (int)(globals.page.w - mane.width));
+	if (!resource.keep_flag) {
+	    value = (globals.page.w - mane.width) / 2;
+	    if (value > resource.sidemargin_int / mane.shrinkfactor)
+		value = resource.sidemargin_int / mane.shrinkfactor;
+	    (void)set_bar_value(globals.widgets.x_bar, value, (int)(globals.page.w - mane.width));
+	}
 
 	value = (globals.page.h - mane.height) / 2;
 	if (value > resource.topmargin_int / mane.shrinkfactor)
@@ -745,10 +747,12 @@ home_bottom(wide_bool scrl)
     {
 	int value;
 
-	value = (globals.page.w - mane.width) / 2;
-	if (value > resource.sidemargin_int / mane.shrinkfactor)
-	    value = resource.sidemargin_int / mane.shrinkfactor;
-	(void)set_bar_value(globals.widgets.x_bar, value, (int)(globals.page.w - mane.width));
+	if (!resource.keep_flag) {
+	    value = (globals.page.w - mane.width) / 2;
+	    if (value > resource.sidemargin_int / mane.shrinkfactor)
+		value = resource.sidemargin_int / mane.shrinkfactor;
+	    (void)set_bar_value(globals.widgets.x_bar, value, (int)(globals.page.w - mane.width));
+	}
 
 	(void)set_bar_value(globals.widgets.y_bar, (int)(globals.page.h - mane.height), (int)(globals.page.h - mane.height));
     }

texlive-2007-xprint.patch:

--- NEW FILE texlive-2007-xprint.patch ---
--- tetex-src-3.0/texk/xdvik/configure.in.xprint	2006-05-05 16:31:52.000000000 -0400
+++ tetex-src-3.0/texk/xdvik/configure.in	2006-05-05 16:32:07.000000000 -0400
@@ -105,8 +105,8 @@
   else
     XLFLAG=
   fi
-  AC_CHECK_LIB(Xp, XpQueryVersion,
-               x_ext_lib="-lXp -lXext", :, -lXext -lX11 $X_EXTRA_LIBS $XLFLAG)
+#  AC_CHECK_LIB(Xp, XpQueryVersion,
+#               x_ext_lib="-lXp -lXext", :, -lXext -lX11 $X_EXTRA_LIBS $XLFLAG)
 fi
 dnl
 dnl If libXp not found, try libXext only:

texlive-Build_script.patch:

--- NEW FILE texlive-Build_script.patch ---
---
 build/source/Build |   22 ++++++++++++++++++----
 1 file changed, 18 insertions(+), 4 deletions(-)

Index: texlive-bin-2007/build/source/Build
===================================================================
--- texlive-bin-2007.orig/build/source/Build	2006-12-14 03:12:38.000000000 +0100
+++ texlive-bin-2007/build/source/Build	2007-02-14 15:56:00.000000000 +0100
@@ -47,11 +47,25 @@
 
 # Force building xdvi-xaw; motif is not always free and/or available.
 # --enable-gif is for sam2p; the gif patent has expired worldwide.
-(set -x; \
-  time $TL_CONFIGURE \
+case $1 in
+  configure)
+    shift
+    (set -x; \
+      $TL_CONFIGURE \
          --prefix=$TL_INSTALL_DEST \
          --datadir=$TL_INSTALL_DEST \
          $TL_XDVI_TOOLKIT \
          $TL_CONFIGURE_ARGS \
-         "$@" \
- && time $TL_MAKE $TL_TARGET)
+         "$@" )
+    ;;
+  build)
+    # not make world, this would strip
+    shift
+    make all
+    make install
+    ;;
+  *)
+    echo "This script must be invoked with argument configure or build"
+    ;;
+esac
+

texlive-CVE-2007-4033.patch:

--- NEW FILE texlive-CVE-2007-4033.patch ---
diff -up tetex-src-3.0/libs/t1lib/t1env.c.CVE-2007-4033 tetex-src-3.0/libs/t1lib/t1env.c
--- tetex-src-3.0/libs/t1lib/t1env.c.CVE-2007-4033	2004-01-27 23:26:31.000000000 +0100
+++ tetex-src-3.0/libs/t1lib/t1env.c	2007-11-02 12:48:20.000000000 +0100
@@ -568,6 +568,12 @@ char *intT1_Env_GetCompletePath( char *F
 #endif 
     strcat( pathbuf, DIRECTORY_SEP);
     /* And finally the filename: */
+    /* If current pathbuf + StrippedName + 1 byte for NULL is bigger than pathbuf
+       let's try next pathbuf */
+    if( strlen(pathbuf) + strlen(StrippedName) + 1 > sizeof(pathbuf) ) {
+	i++;
+    	continue;
+    }
     strcat( pathbuf, StrippedName);
     
     /* Check for existence of the path: */

texlive-CVE-2007-4352-5392-5393.patch:

--- NEW FILE texlive-CVE-2007-4352-5392-5393.patch ---
diff -up texlive-2007/libs/xpdf/xpdf/Stream.h.CVE-2007-4352-5392-5393 texlive-2007/libs/xpdf/xpdf/Stream.h
--- texlive-2007/libs/xpdf/xpdf/Stream.h.CVE-2007-4352-5392-5393	2007-08-14 14:03:52.000000000 +0200
+++ texlive-2007/libs/xpdf/xpdf/Stream.h	2007-11-20 15:16:48.000000000 +0100
@@ -528,13 +528,15 @@ private:
   int row;			// current row
   int inputBuf;			// input buffer
   int inputBits;		// number of bits in input buffer
-  short *refLine;		// reference line changing elements
-  int b1;			// index into refLine
-  short *codingLine;		// coding line changing elements
-  int a0;			// index into codingLine
+  int *codingLine;		// coding line changing elements
+  int *refLine;			// reference line changing elements
+  int a0i;			// index into codingLine
+  GBool err;			// error on current line
   int outputBits;		// remaining ouput bits
   int buf;			// character buffer
 
+  void addPixels(int a1, int black);
+  void addPixelsNeg(int a1, int black);
   short getTwoDimCode();
   short getWhiteCode();
   short getBlackCode();
diff -up texlive-2007/libs/xpdf/xpdf/Stream.cc.CVE-2007-4352-5392-5393 texlive-2007/libs/xpdf/xpdf/Stream.cc
--- texlive-2007/libs/xpdf/xpdf/Stream.cc.CVE-2007-4352-5392-5393	2007-08-14 14:03:52.000000000 +0200
+++ texlive-2007/libs/xpdf/xpdf/Stream.cc	2007-11-20 15:16:48.000000000 +0100
@@ -1243,23 +1243,26 @@ CCITTFaxStream::CCITTFaxStream(Stream *s
   columns = columnsA;
   if (columns < 1) {
     columns = 1;
-  }
-  if (columns + 4 <= 0) {
-    columns = INT_MAX - 4;
+  } else if (columns > INT_MAX - 2) {
+    columns = INT_MAX - 2;
   }
   rows = rowsA;
   endOfBlock = endOfBlockA;
   black = blackA;
-  refLine = (short *)gmallocn(columns + 3, sizeof(short));
-  codingLine = (short *)gmallocn(columns + 2, sizeof(short));
+  // 0 <= codingLine[0] < codingLine[1] < ... < codingLine[n] = columns
+  // ---> max codingLine size = columns + 1
+  // refLine has one extra guard entry at the end
+  // ---> max refLine size = columns + 2
+  codingLine = (int *)gmallocn(columns + 1, sizeof(int));
+  refLine = (int *)gmallocn(columns + 2, sizeof(int));
 
   eof = gFalse;
   row = 0;
   nextLine2D = encoding < 0;
   inputBits = 0;
-  codingLine[0] = 0;
-  codingLine[1] = refLine[2] = columns;
-  a0 = 1;
+  codingLine[0] = columns;
+  a0i = 0;
+  outputBits = 0;
 
   buf = EOF;
 }
@@ -1278,9 +1281,9 @@ void CCITTFaxStream::reset() {
   row = 0;
   nextLine2D = encoding < 0;
   inputBits = 0;
-  codingLine[0] = 0;
-  codingLine[1] = columns;
-  a0 = 1;
+  codingLine[0] = columns;
+  a0i = 0;
+  outputBits = 0;
   buf = EOF;
 
   // skip any initial zero bits and end-of-line marker, and get the 2D
@@ -1297,211 +1300,230 @@ void CCITTFaxStream::reset() {
   }
 }
 
+inline void CCITTFaxStream::addPixels(int a1, int blackPixels) {
+  if (a1 > codingLine[a0i]) {
+    if (a1 > columns) {
+      error(getPos(), "CCITTFax row is wrong length (%d)", a1);
+      err = gTrue;
+      a1 = columns;
+    }
+    if ((a0i & 1) ^ blackPixels) {
+      ++a0i;
+    }
+    codingLine[a0i] = a1;
+  }
+}
+
+inline void CCITTFaxStream::addPixelsNeg(int a1, int blackPixels) {
+  if (a1 > codingLine[a0i]) {
+    if (a1 > columns) {
+      error(getPos(), "CCITTFax row is wrong length (%d)", a1);
+      err = gTrue;
+      a1 = columns;
+    }
+    if ((a0i & 1) ^ blackPixels) {
+      ++a0i;
+    }
+    codingLine[a0i] = a1;
+  } else if (a1 < codingLine[a0i]) {
+    if (a1 < 0) {
+      error(getPos(), "Invalid CCITTFax code");
+      err = gTrue;
+      a1 = 0;
+    }
+    while (a0i > 0 && a1 <= codingLine[a0i - 1]) {
+      --a0i;
+    }
+    codingLine[a0i] = a1;
+  }
+}
+
 int CCITTFaxStream::lookChar() {
   short code1, code2, code3;
-  int a0New;
-  GBool err, gotEOL;
-  int ret;
-  int bits, i;
+  int b1i, blackPixels, i, bits;
+  GBool gotEOL;
 
-  // if at eof just return EOF
-  if (eof && codingLine[a0] >= columns) {
-    return EOF;
+  if (buf != EOF) {
+    return buf;
   }
 
   // read the next row
-  err = gFalse;
-  if (codingLine[a0] >= columns) {
+  if (outputBits == 0) {
+
+    // if at eof just return EOF
+    if (eof) {
+      return EOF;
+    }
+
+    err = gFalse;
 
     // 2-D encoding
     if (nextLine2D) {
-      // state:
-      //   a0New = current position in coding line (0 <= a0New <= columns)
-      //   codingLine[a0] = last change in coding line
-      //                    (black-to-white if a0 is even,
-      //                     white-to-black if a0 is odd)
-      //   refLine[b1] = next change in reference line of opposite color
-      //                 to a0
-      // invariants:
-      //   0 <= codingLine[a0] <= a0New
-      //           <= refLine[b1] <= refLine[b1+1] <= columns
-      //   0 <= a0 <= columns+1
-      //   refLine[0] = 0
-      //   refLine[n] = refLine[n+1] = columns
-      //     -- for some 1 <= n <= columns+1
-      // end condition:
-      //   0 = codingLine[0] <= codingLine[1] < codingLine[2] < ...
-      //     < codingLine[n-1] < codingLine[n] = columns
-      //     -- where 1 <= n <= columns+1
       for (i = 0; codingLine[i] < columns; ++i) {
 	refLine[i] = codingLine[i];
       }
-      refLine[i] = refLine[i + 1] = columns;
-      b1 = 1;
-      a0New = codingLine[a0 = 0] = 0;
-      do {
+      refLine[i++] = columns;
+      refLine[i] = columns;
+      codingLine[0] = 0;
+      a0i = 0;
+      b1i = 0;
+      blackPixels = 0;
+      // invariant:
+      // refLine[b1i-1] <= codingLine[a0i] < refLine[b1i] < refLine[b1i+1]
+      //                                                             <= columns
+      // exception at left edge:
+      //   codingLine[a0i = 0] = refLine[b1i = 0] = 0 is possible
+      // exception at right edge:
+      //   refLine[b1i] = refLine[b1i+1] = columns is possible
+      while (codingLine[a0i] < columns) {
 	code1 = getTwoDimCode();
 	switch (code1) {
 	case twoDimPass:
-	  if (refLine[b1] < columns) {
-	    a0New = refLine[b1 + 1];
-	    b1 += 2;
+	  addPixels(refLine[b1i + 1], blackPixels);
+	  if (refLine[b1i + 1] < columns) {
+	    b1i += 2;
 	  }
 	  break;
 	case twoDimHoriz:
-	  if ((a0 & 1) == 0) {
-	    code1 = code2 = 0;
+	  code1 = code2 = 0;
+	  if (blackPixels) {
 	    do {
-	      code1 += code3 = getWhiteCode();
+	      code1 += code3 = getBlackCode();
 	    } while (code3 >= 64);
 	    do {
-	      code2 += code3 = getBlackCode();
+	      code2 += code3 = getWhiteCode();
 	    } while (code3 >= 64);
 	  } else {
-	    code1 = code2 = 0;
 	    do {
-	      code1 += code3 = getBlackCode();
+	      code1 += code3 = getWhiteCode();
 	    } while (code3 >= 64);
 	    do {
-	      code2 += code3 = getWhiteCode();
+	      code2 += code3 = getBlackCode();
 	    } while (code3 >= 64);
 	  }
-	  if (code1 > 0 || code2 > 0) {
-	    if (a0New + code1 <= columns) {
-	      codingLine[a0 + 1] = a0New + code1;
-	    } else {
-	      codingLine[a0 + 1] = columns;
-	    }
-	    ++a0;
-	    if (codingLine[a0] + code2 <= columns) {
-	      codingLine[a0 + 1] = codingLine[a0] + code2;
-	    } else {
-	      codingLine[a0 + 1] = columns;
-	    }
-	    ++a0;
-	    a0New = codingLine[a0];
-	    while (refLine[b1] <= a0New && refLine[b1] < columns) {
-	      b1 += 2;
+	  addPixels(codingLine[a0i] + code1, blackPixels);
+	  if (codingLine[a0i] < columns) {
+	    addPixels(codingLine[a0i] + code2, blackPixels ^ 1);
+	  }
+	  while (refLine[b1i] <= codingLine[a0i] && refLine[b1i] < columns) {
+	    b1i += 2;
+	  }
+	  break;
+	case twoDimVertR3:
+	  addPixels(refLine[b1i] + 3, blackPixels);
+	  blackPixels ^= 1;
+	  if (codingLine[a0i] < columns) {
+	    ++b1i;
+	    while (refLine[b1i] <= codingLine[a0i] && refLine[b1i] < columns) {
+	      b1i += 2;
 	    }
 	  }
 	  break;
-	case twoDimVert0:
-	  if (refLine[b1] < columns) {
-	    a0New = codingLine[++a0] = refLine[b1];
-	    ++b1;
-	    while (refLine[b1] <= a0New && refLine[b1] < columns) {
-	      b1 += 2;
+	case twoDimVertR2:
+	  addPixels(refLine[b1i] + 2, blackPixels);
+	  blackPixels ^= 1;
+	  if (codingLine[a0i] < columns) {
+	    ++b1i;
+	    while (refLine[b1i] <= codingLine[a0i] && refLine[b1i] < columns) {
+	      b1i += 2;
 	    }
-	  } else {
-	    a0New = codingLine[++a0] = columns;
 	  }
 	  break;
 	case twoDimVertR1:
-	  if (refLine[b1] + 1 < columns) {
-	    a0New = codingLine[++a0] = refLine[b1] + 1;
-	    ++b1;
-	    while (refLine[b1] <= a0New && refLine[b1] < columns) {
-	      b1 += 2;
+	  addPixels(refLine[b1i] + 1, blackPixels);
+	  blackPixels ^= 1;
+	  if (codingLine[a0i] < columns) {
+	    ++b1i;
+	    while (refLine[b1i] <= codingLine[a0i] && refLine[b1i] < columns) {
+	      b1i += 2;
 	    }
-	  } else {
-	    a0New = codingLine[++a0] = columns;
 	  }
 	  break;
-	case twoDimVertL1:
-	  if (refLine[b1] - 1 > a0New || (a0 == 0 && refLine[b1] == 1)) {
-	    a0New = codingLine[++a0] = refLine[b1] - 1;
-	    --b1;
-	    while (refLine[b1] <= a0New && refLine[b1] < columns) {
-	      b1 += 2;
+	case twoDimVert0:
+	  addPixels(refLine[b1i], blackPixels);
+	  blackPixels ^= 1;
+	  if (codingLine[a0i] < columns) {
+	    ++b1i;
+	    while (refLine[b1i] <= codingLine[a0i] && refLine[b1i] < columns) {
+	      b1i += 2;
 	    }
 	  }
 	  break;
-	case twoDimVertR2:
-	  if (refLine[b1] + 2 < columns) {
-	    a0New = codingLine[++a0] = refLine[b1] + 2;
-	    ++b1;
-	    while (refLine[b1] <= a0New && refLine[b1] < columns) {
-	      b1 += 2;
+	case twoDimVertL3:
+	  addPixelsNeg(refLine[b1i] - 3, blackPixels);
+	  blackPixels ^= 1;
+	  if (codingLine[a0i] < columns) {
+	    if (b1i > 0) {
+	      --b1i;
+	    } else {
+	      ++b1i;
+	    }
+	    while (refLine[b1i] <= codingLine[a0i] && refLine[b1i] < columns) {
+	      b1i += 2;
 	    }
-	  } else {
-	    a0New = codingLine[++a0] = columns;
 	  }
 	  break;
 	case twoDimVertL2:
-	  if (refLine[b1] - 2 > a0New || (a0 == 0 && refLine[b1] == 2)) {
-	    a0New = codingLine[++a0] = refLine[b1] - 2;
-	    --b1;
-	    while (refLine[b1] <= a0New && refLine[b1] < columns) {
-	      b1 += 2;
+	  addPixelsNeg(refLine[b1i] - 2, blackPixels);
+	  blackPixels ^= 1;
+	  if (codingLine[a0i] < columns) {
+	    if (b1i > 0) {
+	      --b1i;
+	    } else {
+	      ++b1i;
 	    }
-	  }
-	  break;
-	case twoDimVertR3:
-	  if (refLine[b1] + 3 < columns) {
-	    a0New = codingLine[++a0] = refLine[b1] + 3;
-	    ++b1;
-	    while (refLine[b1] <= a0New && refLine[b1] < columns) {
-	      b1 += 2;
+	    while (refLine[b1i] <= codingLine[a0i] && refLine[b1i] < columns) {
+	      b1i += 2;
 	    }
-	  } else {
-	    a0New = codingLine[++a0] = columns;
 	  }
 	  break;
-	case twoDimVertL3:
-	  if (refLine[b1] - 3 > a0New || (a0 == 0 && refLine[b1] == 3)) {
-	    a0New = codingLine[++a0] = refLine[b1] - 3;
-	    --b1;
-	    while (refLine[b1] <= a0New && refLine[b1] < columns) {
-	      b1 += 2;
+	case twoDimVertL1:
+	  addPixelsNeg(refLine[b1i] - 1, blackPixels);
+	  blackPixels ^= 1;
+	  if (codingLine[a0i] < columns) {
+	    if (b1i > 0) {
+	      --b1i;
+	    } else {
+	      ++b1i;
+	    }
+	    while (refLine[b1i] <= codingLine[a0i] && refLine[b1i] < columns) {
+	      b1i += 2;
 	    }
 	  }
 	  break;
 	case EOF:
+	  addPixels(columns, 0);
 	  eof = gTrue;
-	  codingLine[a0 = 0] = columns;
-	  return EOF;
+	  break;
 	default:
 	  error(getPos(), "Bad 2D code %04x in CCITTFax stream", code1);
+	  addPixels(columns, 0);
 	  err = gTrue;
 	  break;
 	}
-      } while (codingLine[a0] < columns);
+      }
 
     // 1-D encoding
     } else {
-      codingLine[a0 = 0] = 0;
-      while (1) {
+      codingLine[0] = 0;
+      a0i = 0;
+      blackPixels = 0;
+      while (codingLine[a0i] < columns) {
 	code1 = 0;
-	do {
-	  code1 += code3 = getWhiteCode();
-	} while (code3 >= 64);
-	codingLine[a0+1] = codingLine[a0] + code1;
-	++a0;
-	if (codingLine[a0] >= columns) {
-	  break;
-	}
-	code2 = 0;
-	do {
-	  code2 += code3 = getBlackCode();
-	} while (code3 >= 64);
-	codingLine[a0+1] = codingLine[a0] + code2;
-	++a0;
-	if (codingLine[a0] >= columns) {
-	  break;
+	if (blackPixels) {
+	  do {
+	    code1 += code3 = getBlackCode();
+	  } while (code3 >= 64);
+	} else {
+	  do {
+	    code1 += code3 = getWhiteCode();
+	  } while (code3 >= 64);
 	}
+	addPixels(codingLine[a0i] + code1, blackPixels);
+	blackPixels ^= 1;
       }
     }
 
-    if (codingLine[a0] != columns) {
-      error(getPos(), "CCITTFax row is wrong length (%d)", codingLine[a0]);
-      // force the row to be the correct length
-      while (codingLine[a0] > columns) {
-	--a0;
-      }
-      codingLine[++a0] = columns;
-      err = gTrue;
-    }
-
     // byte-align the row
     if (byteAlign) {
       inputBits &= ~7;
@@ -1560,14 +1582,17 @@ int CCITTFaxStream::lookChar() {
     // this if we know the stream contains end-of-line markers because
     // the "just plow on" technique tends to work better otherwise
     } else if (err && endOfLine) {
-      do {
+      while (1) {
+	code1 = lookBits(13);
 	if (code1 == EOF) {
 	  eof = gTrue;
 	  return EOF;
 	}
+	if ((code1 >> 1) == 0x001) {
+	  break;
+	}
 	eatBits(1);
-	code1 = lookBits(13);
-      } while ((code1 >> 1) != 0x001);
+      }
       eatBits(12); 
       if (encoding > 0) {
 	eatBits(1);
@@ -1575,11 +1600,11 @@ int CCITTFaxStream::lookChar() {
       }
     }
 
-    a0 = 0;
-    outputBits = codingLine[1] - codingLine[0];
-    if (outputBits == 0) {
-      a0 = 1;
-      outputBits = codingLine[2] - codingLine[1];
+    // set up for output
+    if (codingLine[0] > 0) {
+      outputBits = codingLine[a0i = 0];
+    } else {
+      outputBits = codingLine[a0i = 1];
     }
 
     ++row;
@@ -1587,39 +1612,43 @@ int CCITTFaxStream::lookChar() {
 
   // get a byte
   if (outputBits >= 8) {
-    ret = ((a0 & 1) == 0) ? 0xff : 0x00;
-    if ((outputBits -= 8) == 0) {
-      ++a0;
-      if (codingLine[a0] < columns) {
-	outputBits = codingLine[a0 + 1] - codingLine[a0];
-      }
+    buf = (a0i & 1) ? 0x00 : 0xff;
+    outputBits -= 8;
+    if (outputBits == 0 && codingLine[a0i] < columns) {
+      ++a0i;
+      outputBits = codingLine[a0i] - codingLine[a0i - 1];
     }
   } else {
     bits = 8;
-    ret = 0;
+    buf = 0;
     do {
       if (outputBits > bits) {
-	i = bits;
-	bits = 0;
-	if ((a0 & 1) == 0) {
-	  ret |= 0xff >> (8 - i);
+	buf <<= bits;
+	if (!(a0i & 1)) {
+	  buf |= 0xff >> (8 - bits);
 	}
-	outputBits -= i;
+	outputBits -= bits;
+	bits = 0;
       } else {
-	i = outputBits;
-	bits -= outputBits;
-	if ((a0 & 1) == 0) {
-	  ret |= (0xff >> (8 - i)) << bits;
+	buf <<= outputBits;
+	if (!(a0i & 1)) {
+	  buf |= 0xff >> (8 - outputBits);
 	}
+	bits -= outputBits;
 	outputBits = 0;
-	++a0;
-	if (codingLine[a0] < columns) {
-	  outputBits = codingLine[a0 + 1] - codingLine[a0];
+	if (codingLine[a0i] < columns) {
+	  ++a0i;
+	  outputBits = codingLine[a0i] - codingLine[a0i - 1];
+	} else if (bits > 0) {
+	  buf <<= bits;
+	  bits = 0;
 	}
       }
-    } while (bits > 0 && codingLine[a0] < columns);
+    } while (bits);
+  }
+  if (black) {
+    buf ^= 0xff;
   }
-  buf = black ? (ret ^ 0xff) : ret;
   return buf;
 }
 
@@ -1661,6 +1690,9 @@ short CCITTFaxStream::getWhiteCode() {
   code = 0; // make gcc happy
   if (endOfBlock) {
     code = lookBits(12);
+    if (code == EOF) {
+      return 1;
+    }
     if ((code >> 5) == 0) {
       p = &whiteTab1[code];
     } else {
@@ -1673,6 +1705,9 @@ short CCITTFaxStream::getWhiteCode() {
   } else {
     for (n = 1; n <= 9; ++n) {
       code = lookBits(n);
+      if (code == EOF) {
+	return 1;
+      }
       if (n < 9) {
 	code <<= 9 - n;
       }
@@ -1684,6 +1719,9 @@ short CCITTFaxStream::getWhiteCode() {
     }
     for (n = 11; n <= 12; ++n) {
       code = lookBits(n);
+      if (code == EOF) {
+	return 1;
+      }
       if (n < 12) {
 	code <<= 12 - n;
       }
@@ -1709,9 +1747,12 @@ short CCITTFaxStream::getBlackCode() {
   code = 0; // make gcc happy
   if (endOfBlock) {
     code = lookBits(13);
+    if (code == EOF) {
+      return 1;
+    }
     if ((code >> 7) == 0) {
       p = &blackTab1[code];
-    } else if ((code >> 9) == 0) {
+    } else if ((code >> 9) == 0 && (code >> 7) != 0) {
       p = &blackTab2[(code >> 1) - 64];
     } else {
       p = &blackTab3[code >> 7];
@@ -1723,6 +1764,9 @@ short CCITTFaxStream::getBlackCode() {
   } else {
     for (n = 2; n <= 6; ++n) {
       code = lookBits(n);
+      if (code == EOF) {
+	return 1;
+      }
       if (n < 6) {
 	code <<= 6 - n;
       }
@@ -1734,6 +1778,9 @@ short CCITTFaxStream::getBlackCode() {
     }
     for (n = 7; n <= 12; ++n) {
       code = lookBits(n);
+      if (code == EOF) {
+	return 1;
+      }
       if (n < 12) {
 	code <<= 12 - n;
       }
@@ -1747,6 +1794,9 @@ short CCITTFaxStream::getBlackCode() {
     }
     for (n = 10; n <= 13; ++n) {
       code = lookBits(n);
+      if (code == EOF) {
+	return 1;
+      }
       if (n < 13) {
 	code <<= 13 - n;
       }
@@ -1961,6 +2011,12 @@ void DCTStream::reset() {
     // allocate a buffer for the whole image
     bufWidth = ((width + mcuWidth - 1) / mcuWidth) * mcuWidth;
     bufHeight = ((height + mcuHeight - 1) / mcuHeight) * mcuHeight;
+    if (bufWidth <= 0 || bufHeight <= 0 ||
+	bufWidth > INT_MAX / bufWidth / (int)sizeof(int)) {
+      error(getPos(), "Invalid image size in DCT stream");
+      y = height;
+      return;
+    }
     for (i = 0; i < numComps; ++i) {
       frameBuf[i] = (int *)gmallocn(bufWidth * bufHeight, sizeof(int));
       memset(frameBuf[i], 0, bufWidth * bufHeight * sizeof(int));
@@ -3036,6 +3092,11 @@ GBool DCTStream::readScanInfo() {
   }
   scanInfo.firstCoeff = str->getChar();
   scanInfo.lastCoeff = str->getChar();
+  if (scanInfo.firstCoeff < 0 || scanInfo.lastCoeff > 63 ||
+      scanInfo.firstCoeff > scanInfo.lastCoeff) {
+    error(getPos(), "Bad DCT coefficient numbers in scan info block");
+    return gFalse;
+  }
   c = str->getChar();
   scanInfo.ah = (c >> 4) & 0x0f;
   scanInfo.al = c & 0x0f;

texlive-checklib_fixes.patch:

--- NEW FILE texlive-checklib_fixes.patch ---
#! /bin/sh /usr/share/dpatch/dpatch-run
## 54_checklib_fixes.dpatch by Norbert Preining
##
## DP: fix unnecessary libraries in the ELF header, ie libs which were
## DP: added to teh bin at linking stage

@DPATCH@
 build/source/texk/web2c/Makefile.in    |    4 ++--
 build/source/texk/xdvik/Makefile.in    |    4 ++--
 build/source/utils/pdfopen/Makefile.in |    2 +-
 3 files changed, 5 insertions(+), 5 deletions(-)

Index: texlive-bin-2006.svn3816/build/source/texk/web2c/Makefile.in
===================================================================
--- texlive-bin-2006.svn3816.orig/build/source/texk/web2c/Makefile.in	2007-01-10 18:39:42.000000000 +0100
+++ texlive-bin-2006.svn3816/build/source/texk/web2c/Makefile.in	2007-01-26 04:03:16.000000000 +0100
@@ -55,10 +55,10 @@
 # All the x_... variables will be empty if we aren't supporting X.
 x_cppflags = @X_CFLAGS@
 x_ldflags = @X_LIBS@
-x_pre_libs = @X_PRE_LIBS@
+x_pre_libs =    # disabled since it created unnecessary deps @X_PRE_LIBS@
 x_extra_libs = @X_EXTRA_LIBS@
 x_tool_libs = @x_tool_libs@
-x_ext_lib = @x_ext_lib@
+x_ext_lib = 	# disabled since it created unnecessary deps @x_ext_lib@
 wlibs = @wlibs@
 # Follow the library order used in X11R6 itself:
 #   -lXaw -lXmu -lXt -lSM -lICE -lXext -lX11 (some may not be present).
Index: texlive-bin-2006.svn3816/build/source/texk/xdvik/Makefile.in
===================================================================
--- texlive-bin-2006.svn3816.orig/build/source/texk/xdvik/Makefile.in	2006-01-17 22:41:51.000000000 +0100
+++ texlive-bin-2006.svn3816/build/source/texk/xdvik/Makefile.in	2007-01-26 04:03:16.000000000 +0100
@@ -17,13 +17,13 @@
 # This matches web2c (needed only for Metafont).
 x_cppflags=@X_CFLAGS@ @iconv_includes@
 x_ldflags=@X_LIBS@ @x_linker_options@ @iconv_libpath@
-x_pre_libs=@X_PRE_LIBS@
+x_pre_libs=		# disabled as it generates unnecessary deps @X_PRE_LIBS@
 x_extra_libs=@X_EXTRA_LIBS@ @iconv_libs@
 x_tool_libs=@x_tool_libs@
 x_xmu_lib=@x_xmu_lib@
 x_xpm_libs=@x_xpm_libs@
 # -lXp and -lXext
-x_ext_lib=@x_ext_lib@
+x_ext_lib=		# disabled as it generates unnecessary deps @x_ext_lib@
 
 # Follow the library order used in X11R6 itself.
 # It seems that on Cygwin, libXaw needs _XpmReadFileToPixmap, so we put
Index: texlive-bin-2006.svn3816/build/source/utils/pdfopen/Makefile.in
===================================================================
--- texlive-bin-2006.svn3816.orig/build/source/utils/pdfopen/Makefile.in	2006-06-15 15:28:00.000000000 +0200
+++ texlive-bin-2006.svn3816/build/source/utils/pdfopen/Makefile.in	2007-01-26 04:03:16.000000000 +0100
@@ -158,7 +158,7 @@
 sysconfdir = @sysconfdir@
 target_alias = @target_alias@
 AM_CFLAGS = $(X_CFLAGS)
-LDADD = $(X_LIBS) -lX11 -lXmu $(X_EXTRA_LIBS)
+LDADD = $(X_LIBS) -lX11 $(X_EXTRA_LIBS)
 pdfopen_SOURCES = pdfopen.c sendx.c
 pdfclose_SOURCES = pdfclose.c sendx.c
 all: all-am

texlive-dviljktemp.patch:

--- NEW FILE texlive-dviljktemp.patch ---
diff -up tetex-src-3.0/texk/dviljk/dvi2xx.c.dviljktemp tetex-src-3.0/texk/dviljk/dvi2xx.c
--- tetex-src-3.0/texk/dviljk/dvi2xx.c.dviljktemp	1999-02-06 22:46:34.000000000 +0100
+++ tetex-src-3.0/texk/dviljk/dvi2xx.c	2007-11-13 14:53:45.000000000 +0100
@@ -1,5 +1,5 @@
 /* $Id: dvi2xx.c,v 2.5 1997/12/08 20:52:20 neumann Exp $ */
-#define VERSION "2.6p2 (dviljk)"
+#define VERSION "dviljk (version 2.6p3)"
 /*
 #define DEBUGGS 1
 */
@@ -173,7 +173,7 @@ char    *argv[];
   y_origin = YDEFAULTOFF; /* y-origin in dots                    */
 
   setbuf(ERR_STREAM, NULL);
-  (void) strcpy(G_progname, argv[0]);
+  G_progname = argv[0];
 #ifdef KPATHSEA
   kpse_set_progname(argv[0]);
   kpse_set_program_enabled (kpse_pk_format, MAKE_TEX_PK_BY_DEFAULT, kpse_src_compile);
@@ -2968,8 +2968,8 @@ char    *argv[];
 #endif
 {
   int     argind;            /* argument index for flags      */
-  char    curarea[STRSIZE];  /* current file area             */
-  char    curname[STRSIZE];  /* current file name             */
+  char    *curarea;	     /* current file area             */
+  char    *curname;   	     /* current file name             */
   char    *tcp, *tcp1;       /* temporary character pointers  */
   char    *this_arg;
   double  x_offset = 0.0, y_offset = 0.0;
@@ -2988,9 +2988,9 @@ char    *argv[];
 #endif
 #endif
 
-  if (argc == 2 && (strcmp (argv[1], "--version") == 0)) {
+  if (argc == 2 && EQ(argv[1], "--version")) {
     extern KPSEDLL char *kpathsea_version_string;
-    puts ("dvilj(k) 2.6");
+    puts (VERSION);
     puts (kpathsea_version_string);
     puts ("Copyright (C) 1997 Gustaf Neumann.\n\
 There is NO warranty.  You may redistribute this software\n\
@@ -3328,8 +3328,8 @@ Primary author of Dvi2xx: Gustaf Neumann
       }
     } else {
 
-      (void) strcpy(filename, tcp);
-      if (!strcmp(filename, "-")) {
+      filename = tcp;
+      if (EQ(filename, "-")) {
         EmitFileName = "-";
 #ifdef RISC_USE_OSL
         dvifp = BINOPEN("Kbd:");
@@ -3339,57 +3339,68 @@ Primary author of Dvi2xx: Gustaf Neumann
 	  AssureBinary(fileno(dvifp));
 #endif
       } else {
+	/* Since this code is used only once during startup, we don't care
+	   about free()ing the allocated strings that represent filenames.
+	   It will be more work to realize proper deallocation handling than
+	   it's worth in terms of saving a few bytes. We consider these
+	   bytes actually static memory where we don't know the size in
+	   advance and don't add them to the allocated_storage count.
+	   [27 Jun 07 -js] */
 #ifdef KPATHSEA
         /* split into directory + file name */
 	int tcplen, argvlen;
 	tcp = (char *)xbasename(argv[argind]);/* this knows about any kind of slashes */
 	tcplen = strlen(tcp);
+	if ( tcplen == 0 ) {
+	  /* This happens when the DVI file name has a trailing slash; this
+	     is not a valid name. Then we terminate the argument parsing
+	     loop, a usage message will be output below. */
+	  break;
+	}
 	argvlen = strlen(argv[argind]);
 	if (tcplen == argvlen)
-	  curarea[0] = '\0';
+	  curarea = "";
 	else {
-	  (void) strcpy(curarea, argv[argind]);
+	  curarea = xstrdup(argv[argind]);
 	  curarea[argvlen-tcplen] = '\0';
 	}
 #else
         tcp = strrchr(argv[argind], '/');
         /* split into directory + file name */
         if (tcp == NULL) {
-          curarea[0] = '\0';
+          curarea[0] = "";
           tcp = argv[argind];
         } else {
-          (void) strcpy(curarea, argv[argind]);
+	  curarea = xstrdup(argv[argind]);
           curarea[tcp-argv[argind]+1] = '\0';
           tcp += 1;
         }
 #endif
 
+        curname = (char *) xmalloc(strlen(tcp)+5);  /* + space for ".dvi" */
         (void) strcpy(curname, tcp);
         /* split into file name + extension */
-        tcp1 = strrchr(tcp, '.');
+        tcp1 = strrchr(curname, '.');
         if (tcp1 == NULL) {
-          (void) strcpy(rootname, curname);
+          rootname = xstrdup(curname);
           strcat(curname, ".dvi");
         } else {
           *tcp1 = '\0';
-          (void) strcpy(rootname, curname);
+          rootname = xstrdup(curname);
           *tcp1 = '.';
         }
 
+	filename = (char *) xmalloc(strlen(curarea)+strlen(curname)+1);
         (void) strcpy(filename, curarea);
         (void) strcat(filename, curname);
 
         if ((dvifp = BINOPEN(filename)) == FPNULL) {
           /* do not insist on .dvi */
           if (tcp1 == NULL) {
-            int l = strlen(curname);
-            if (l > 4)
-              curname[l - 4] = '\0';
-            l = strlen(filename);
-            if (l > 4)
-              filename[l - 4] = '\0';
+	    filename[strlen(filename) - 4] = '\0';
+	    dvifp = BINOPEN(filename);
           }
-          if (tcp1 != NULL || (dvifp = BINOPEN(filename)) == FPNULL) {
+          if (dvifp == FPNULL) {
 #ifdef MSC5
             Fatal("%s: can't find DVI file \"%s\"\n\n",
                   G_progname, filename);
@@ -3411,7 +3422,7 @@ Primary author of Dvi2xx: Gustaf Neumann
   y_goffset = (short) MM_TO_PXL(y_offset) + y_origin;
 
   if (dvifp == FPNULL) {
-    fprintf(ERR_STREAM,"\nThis is the DVI to %s converter version %s",
+    fprintf(ERR_STREAM,"\nThis is the DVI to %s converter %s",
             PRINTER, VERSION);
 #ifdef SEVENBIT
     fprintf(ERR_STREAM,", 7bit");
@@ -3507,13 +3518,8 @@ Primary author of Dvi2xx: Gustaf Neumann
     exit(1);
   }
   if (EQ(EmitFileName, "")) {
-    if ((EmitFileName = (char *)malloc( STRSIZE )) != NULL)
-      allocated_storage += STRSIZE;
-    else
-      Fatal("Can't allocate storage of %d bytes\n",STRSIZE);
-    (void) strcpy(EmitFileName, curname);
-    if ((tcp1 = strrchr(EmitFileName, '.')))
-      *tcp1 = '\0';
+    EmitFileName = (char *) xmalloc(strlen(rootname)+sizeof(EMITFILE_EXTENSION));
+    (void) strcpy(EmitFileName, rootname);
     strcat(EmitFileName, EMITFILE_EXTENSION);
   }
   if (G_quiet)
@@ -3698,6 +3704,8 @@ bool PFlag;
 #endif
   }
   CloseFiles();
+  if ( tmp_dir[0] != '\0' )
+    rmdir (tmp_dir);			/* ignore errors */
   exit(G_errenc);
 }
 
@@ -3895,22 +3903,21 @@ char *str;
 int  n;
 #endif
 {
-  char    spbuf[STRSIZE], xs[STRSIZE], ys[STRSIZE];
-  char    *sf = NULL, *psfile = NULL;
+  char    xs[STRSIZE], ys[STRSIZE];
+  char    *include_file = NULL;
+  enum    { VerbFile, HPFile, PSFile } file_type;
   float   x,y;
   long4   x_pos, y_pos;
   KeyWord k;
   int     i, j, j1;
   static  int   GrayScale = 10, Pattern = 1;
   static  bool  GrayFill = _TRUE;
-  static  long4 p_x[80], p_y[80];
-  int llx=0, lly=0, urx=0, ury=0, rwi=0, rhi=0;
-#ifdef WIN32
-  char    *gs_path;
-#endif
+  static  long4 p_x[MAX_SPECIAL_DEFPOINTS], p_y[MAX_SPECIAL_DEFPOINTS];
+  int llx=0, lly=0, urx=0, ury=0, rwi=0;
 
   str[n] = '\0';
-  spbuf[0] = '\0';
+  for ( i=0 ; i<MAX_SPECIAL_DEFPOINTS ; i++ )
+    p_x[i] = p_y[i] = -1;
 
   SetPosn(h, v);
 #ifdef __riscos
@@ -3924,41 +3931,30 @@ int  n;
     /* get all keyword-value pairs */
     /* for compatibility, single words are taken as file names */
     if ( k.vt == None && access(k.Key, 0) == 0) {
-      if ( sf
-#ifdef KPATHSEA
-           && !kpse_tex_hush ("special")
-#endif
-         )
-        Warning("More than one \\special file name given. %s ignored", sf);
-      (void) strcpy(spbuf, k.Key);
-      sf = spbuf;
-      /*
-        for (j = 1; ((sf[j]=='/' ? sf[j]='\\':sf[j]) != '\0'); j++);
-        */
-    } else if ( GetKeyVal( &k, KeyTab, NKEYS, &i ) && i != -1 )
+      if ( include_file && !kpse_tex_hush ("special") ) {
+        Warning("More than one \\special file name given. %s ignored", include_file);
+	free (include_file);
+      }
+      include_file = xstrdup(k.Key);
+      file_type = VerbFile;
+    } else if ( GetKeyVal( &k, KeyTab, NKEYS, &i ) && i != -1 ) {
       switch (i) {
       case PSFILE:
-        if (sf
-#ifdef KPATHSEA
-            && !kpse_tex_hush ("special")
-#endif
-            )
-            Warning("More than one \\special file name given. %s ignored", sf);
-        (void) strcpy(spbuf, k.Val);
-        psfile = spbuf;
-        /*
-          for (j=1; ((sf[j]=='/' ? sf[j]='\\':sf[j]) != '\0'); j++);
-          */
+        if ( include_file ) {
+	  Warning("More than one \\special file name given. %s ignored", include_file);
+	  free(include_file);
+	}
+        include_file = xstrdup(k.Val);
+	file_type = PSFile;
         break;
         
       case HPFILE:
-        if (sf)
-            Warning("More than one \\special file name given. %s ignored", sf);
-        (void) strcpy(spbuf, k.Val);
-        sf = spbuf;
-        /*
-          for (j=1; ((sf[j]=='/' ? sf[j]='\\':sf[j]) != '\0'); j++);
-          */
+        if ( include_file && !kpse_tex_hush ("special") ) {
+	  Warning("More than one \\special file name given. %s ignored", include_file);
+	  free(include_file);
+	}
+        include_file = xstrdup(k.Val);
+	file_type = HPFile;
         break;
 
       case ORIENTATION:
@@ -3978,23 +3974,24 @@ int  n;
         }
 #endif
         else
-#ifdef KPATHSEA
-           if (!kpse_tex_hush ("special"))
-#endif
           Warning( "Invalid orientation (%d)given; ignored.", k.v.i);
         break;
 
       case RESETPOINTS:
-        (void) strcpy(spbuf, k.Val);
-
-        sf = NULL;
+	for ( i=0 ; i<MAX_SPECIAL_DEFPOINTS ; i++ )
+	  p_x[i] = p_y[i] = -1;
         break;
 
       case DEFPOINT:
-        (void) strcpy(spbuf, k.Val);
-        i = sscanf(spbuf,"%d(%[^,],%s)",&j,xs,ys);
+	/* 254 is STRSIZE-1. cpp should be used to construct that number. */
+        i = sscanf(k.Val,"%d(%254[^,],%254s)",&j,xs,ys);
         if (i>0) {
-          x_pos = h; 
+	  if ( j < 0  ||  j >= MAX_SPECIAL_DEFPOINTS ) {
+	    Warning ("defpoint %d ignored, must be between 0 and %d",
+		     j, MAX_SPECIAL_DEFPOINTS);
+	    break;
+	  }
+          x_pos = h;
           y_pos = v;
           if (i>1) {
             if (sscanf(xs,"%fpt",&x)>0) {
@@ -4011,19 +4008,32 @@ int  n;
           p_x[j]=x_pos;
           p_y[j]=y_pos;
         } else
-#ifdef KPATHSEA
-              if (!kpse_tex_hush ("special"))
-#endif
           Warning("invalid point definition\n");
-
-        sf = NULL;
         break;
 
       case FILL:
-        (void) strcpy(spbuf, k.Val);
-        i = sscanf(spbuf,"%d/%d %s",&j,&j1,xs);
+	/* 254 is STRSIZE-1. cpp should be used to construct that number. */
+        i = sscanf(k.Val,"%d/%d %254s",&j,&j1,xs);
         if (i>1) {
 #ifdef LJ
+	  if ( j < 0 || j >= MAX_SPECIAL_DEFPOINTS ) {
+	    Warning ("fill ignored, point %d must be between 0 and %d",
+		     j, MAX_SPECIAL_DEFPOINTS);
+	    break;
+	  }
+	  if ( p_x[j] == -1 ) {
+	    Warning ("fill ignored, point %d is undefined\n", j);
+	    break;
+	  }
+	  if ( j1 < 0 || j1 >= MAX_SPECIAL_DEFPOINTS ) {
+	    Warning ("fill ignored, point %d must be between 0 and %d",
+		     j1, MAX_SPECIAL_DEFPOINTS);
+	    break;
+	  }
+	  if ( p_x[j1] == -1 ) {
+	    Warning ("fill ignored, point %d is undefined\n", j1);
+	    break;
+	  }
           SetPosn(p_x[j], p_y[j]);
           x_pos = (long4)PIXROUND(p_x[j1]-p_x[j], hconv);
           y_pos = (long4)PIXROUND(p_y[j1]-p_y[j], vconv);
@@ -4044,9 +4054,6 @@ int  n;
           GrayScale = k.v.i;
           GrayFill = _TRUE;
         } else
-#ifdef KPATHSEA
-           if (!kpse_tex_hush ("special"))
-#endif
           Warning( "Invalid gray scale (%d) given; ignored.", k.v.i);
         break;
 
@@ -4055,9 +4062,6 @@ int  n;
           Pattern = k.v.i;
           GrayFill = _FALSE;
         } else
-#ifdef KPATHSEA
-           if (!kpse_tex_hush ("special"))
-#endif
           Warning( "Invalid pattern (%d) given; ignored.", k.v.i);
         break;
 
@@ -4066,75 +4070,123 @@ int  n;
       case URX: urx = k.v.i; break;
       case URY: ury = k.v.i; break;
       case RWI: rwi = k.v.i; break;
-      case RHI: rhi = k.v.i; break;
+      case RHI:
+	if (!kpse_tex_hush ("special"))
+            Warning("Whatever rhi was good for once, it is ignored now.");
+	break;
 
       default:
-#ifdef KPATHSEA
-           if (!kpse_tex_hush ("special"))
-#endif
+	if ( !kpse_tex_hush ("special") )
         Warning("Can't handle %s=%s command; ignored.", k.Key, k.Val);
         break;
       }
-      
-    else
-#ifdef KPATHSEA
-           if (!kpse_tex_hush ("special"))
-#endif
+
+    } else if (!kpse_tex_hush ("special")) {
       Warning("Invalid keyword or value in \\special - <%s> ignored", k.Key);
+    }
+
+    free (k.Key);
+    if ( k.Val != NULL )  free(k.Val);
   }
 
-  if ( sf || psfile ) {
+  if ( include_file ) {
     last_rx = last_ry = UNKNOWN;
 #ifdef IBM3812
     PMPflush;
 #endif
-    if (sf) {
-      if (i == HPFILE) 
-        CopyHPFile( sf );
-      else 
-        CopyFile( sf );
-    }
-    else
+
 #ifdef LJ
-      if (psfile) {
+      if ( file_type == PSFile) {
         /* int height = rwi * (urx - llx) / (ury - lly);*/
         int width  = urx - llx;
         int height = ury - lly;
         char cmd[255];
-        int scale_factor    = 3000 * width / rwi;
-        int adjusted_height = height * 300/scale_factor;
-        int adjusted_llx    = llx    * 300/scale_factor;
+        char *cmd_format = "%s -q -dSIMPLE -dSAFER -dNOPAUSE -sDEVICE=%s -sOutputFile=%s %s %s showpage.ps -c quit";
+        char *gs_cmd;
+        int scale_factor, adjusted_height, adjusted_llx;
         char *printer = "ljetplus"; /* use the most stupid one */
 
-
-        char scale_file_name[255];
-        char *scale_file = tmpnam(scale_file_name);
-        char *pcl_file = tmpnam(NULL);  
+        char pcl_file[STRSIZE];
+        char scale_file[STRSIZE];
         FILEPTR scalef;
 
-        if ( (scalef = BOUTOPEN(scale_file)) == FPNULL ) {
-          Warning("Unable to open file %s for writing", scale_file );
-          return;
-        }
-        fprintf(scalef, "%.2f %.2f scale\n%d %d translate\n",  
-                300.0/scale_factor, 300.0/scale_factor,
-                0, adjusted_height == height ? 0 : ury);
-        BCLOSE( scalef );
+        if ( urx == 0 || ury == 0 || rwi == 0 ) {
+  	/* Since dvips' psfile special has a different syntax, this might
+  	   well be one of those specials, i.e., a non-dviljk special. Then
+  	   the Warning should be suppressable. */
+  	if ( !kpse_tex_hush ("special") )
+  	  Warning ("Ignoring psfile special without urx, ury and rwi attributes");
+	free (include_file);
+	return;
+      }
+      scale_factor    = 3000 * width / rwi;
+      adjusted_height = height * 300/scale_factor;
+      adjusted_llx    = llx    * 300/scale_factor;
+
+      /* We cannot use mkstemp, as we cannot pass two open file descriptors
+	 portably to Ghostscript. We don't want to use tmpnam() or tempnam()
+	 either, as they have tempfile creation race conditions. Instead we
+	 create a temporary directory with mkdtemp() -- if that's available.
+	 If not, we are thrown back to tempnam(), to get our functionality
+	 at all. We need to create the temporary directory only once per
+	 run; it will be deleted in AllDone(). */
+      if ( tmp_dir[0] == '\0' ) {
+	char * base_dir;
+	if ( (base_dir = getenv("TMPDIR")) == NULL ) {
+	  base_dir = "/tmp";
+	} else if ( strlen(base_dir) > STRSIZE - sizeof("/dviljkXXXXXX/include.pcl") ) {
+	  Warning ("TMPDIR %s is too long, using /tmp instead", base_dir);
+	  base_dir = "/tmp";
+	}
+	if ( base_dir[0] == '/'  && base_dir[1] == '\0' ) {
+	  Warning ("Feeling naughty, do we? / is no temporary directory, dude");
+	  base_dir = "/tmp";
+	}
+	strcpy (tmp_dir, base_dir);
+	strcat (tmp_dir, "/dviljkXXXXXX");
+	if ( mkdtemp(tmp_dir) == NULL ) {
+	  Warning ("Could not create temporary directory %s, errno = %d; ignoring include file special",
+		   tmp_dir, errno);
+	  return;
+	}
+      }
+      strcpy(pcl_file, tmp_dir);
+      strcat(pcl_file, "/include.pcl");
+      strcpy(scale_file, tmp_dir);
+      strcat(scale_file, "/scale.ps");
+
+      if ( (scalef = BOUTOPEN(scale_file)) == FPNULL ) {
+	Warning("Unable to open file %s for writing", scale_file );
+	free (include_file);
+	unlink(scale_file);		/* ignore error */
+	return;
+      }
+      fprintf(scalef, "%.2f %.2f scale\n%d %d translate\n",
+	      300.0/scale_factor, 300.0/scale_factor,
+	      0, adjusted_height == height ? 0 : ury);
+      BCLOSE( scalef );
 
 #ifdef WIN32
-	gs_path = getenv("GS_PATH");
-	if (!gs_path)
-	  gs_path = "gswin32c.exe";
-        sprintf(cmd,"%s -q -dSIMPLE -dSAFER -dNOPAUSE -sDEVICE=%s -sOutputFile=%s %s %s showpage.ps -c quit",
-		gs_path, printer, pcl_file, scale_file, psfile);
+      if ( (gs_cmd = getenv("GS_PATH")) == NULL )
+	gs_cmd = "gswin32c.exe";
 #else
-        sprintf(cmd,"gs -q -dSIMPLE -dSAFER -dNOPAUSE -sDEVICE=%s -sOutputFile=%s %s %s showpage.ps -c quit",
-                printer, pcl_file, scale_file, psfile);
+      gs_cmd = "gs";
 #endif
+      if ( strlen(cmd_format)-10 + strlen(gs_cmd) + strlen(printer) +
+	       strlen(pcl_file) + strlen(scale_file) + strlen(include_file) +1 >
+	   sizeof(cmd) ) {
+	Warning ("Ghostscript command for %s would be too long, skipping special", include_file);
+	free (include_file);
+	unlink(scale_file);		/* ignore errors */
+	unlink(pcl_file);
+	return;
+      }
+      sprintf(cmd, cmd_format,
+	      gs_cmd, printer, pcl_file, scale_file, include_file);
 #ifdef DEBUGGS   
         fprintf(stderr,
           "PS-file '%s' w=%d, h=%d, urx=%d, ury=%d, llx=%d, lly=%d, rwi=%d\n",
-                psfile, urx - llx, height, urx,ury,llx,lly, rwi);
+	      include_file, urx - llx, height, urx,ury,llx,lly, rwi);
         fprintf(stderr,"%s\n",cmd);
 #endif
         if (system(cmd)) {
@@ -4158,11 +4210,21 @@ int  n;
 #endif
 
           CopyHPFile( pcl_file );
-          /* unlink(pcl_file); */
-          /* unlink(scale_file); */
-        }
       }
+      unlink(scale_file);		/* ignore errors */
+      unlink(pcl_file);
+    }
+    else
 #endif /* LJ */
+
+    if ( file_type == HPFile )
+      CopyHPFile( include_file );
+    else if ( file_type == VerbFile )
+      CopyFile( include_file );
+    else
+      Warning ("This can't happen: unknown file_type value %d", file_type);
+
+    if ( include_file != NULL )  free(include_file);
   }
 }
 
@@ -4173,12 +4235,11 @@ int  n;
 /**********************************************************************/
 /*****************************  GetKeyStr  ****************************/
 /**********************************************************************/
-/* extract first keyword-value pair from string (value part may be null)
- * return pointer to remainder of string
- * return NULL if none found
+/* Extract first keyword-value pair from string (value part may be null),
+ * keyword and value are allocated and must be free by caller.
+ * Return pointer to remainder of string,
+ * return NULL if none found.
  */
-char    KeyStr[STRSIZE];
-char    ValStr[STRSIZE];
 #if NeedFunctionPrototypes
 char *GetKeyStr(char *str, KeyWord *kw )
 #else
@@ -4187,39 +4248,46 @@ char    *str;
 KeyWord *kw;
 #endif
 {
-  char    *s, *k, *v, t;
+  char *s, *start;
+  char save_char, quote_char;
   if ( !str )
     return( NULL );
   for (s = str; *s == ' '; s++)
     ;          /* skip over blanks */
   if (*s == '\0')
     return( NULL );
-  for (k = KeyStr; /* extract keyword portion */
-       *s != ' ' && *s != '\0' && *s != '=';
-       *k++ = *s++)
-    ;
-  *k = '\0';
-  kw->Key = KeyStr;
-  kw->Val = v = NULL;
+  start = s++;				/* start of keyword */
+  while ( *s != ' ' && *s != '\0' && *s != '=' )  /* locate end */
+    s++;
+  save_char = *s;
+  *s = '\0';
+  kw->Key = xstrdup(start);
+  kw->Val = NULL;
   kw->vt = None;
-  for ( ; *s == ' '; s++)
-    ;            /* skip over blanks */
-  if ( *s != '=' )         /* look for "=" */
+  if ( save_char == '\0' )		/* shortcut when we're at the end */
+    return (s);
+  *s = save_char;			/* restore keyword end char */
+  while ( *s == ' ' ) s++ ;		/* skip over blanks */
+  if ( *s != '=' )			/* no "=" means no value */
     return( s );
-  for (s++; *s == ' '; s++);      /* skip over blanks */
-  if ( *s == '\'' || *s == '\"' )  /* get string delimiter */
-    t = *s++;
+  for (s++; *s == ' '; s++)
+    ;					/* skip over blanks */
+  if ( *s == '\'' || *s == '\"' )	/* get string delimiter */
+    quote_char = *s++;
   else
-    t = ' ';
-  for (v = ValStr; /* copy value portion up to delim */
-       *s != t && *s != '\0';
-       *v++ = *s++)
-    ;
-  if ( t != ' ' && *s == t )
-    s++;
-  *v = '\0';
-  kw->Val = ValStr;
+    quote_char = ' ';
+  start = s;				/* no increment, might be "" as value */
+  while ( *s != quote_char && *s != '\0' )
+    s++;			  /* locate end of value portion */
+  save_char = *s;
+  *s = '\0';
+  kw->Val = xstrdup(start);
   kw->vt = String;
+  if ( save_char != '\0' ) {		/* save_char is now quote_char */
+    *s = save_char;
+    if ( quote_char != ' ' )		/* we had real quote chars */
+      s++;
+  }
   return( s );
 }
 
@@ -4819,13 +4887,14 @@ struct font_entry *fontptr;
      the resident fonts.  */
   if (tfm_read_info(fontptr->n, &tfm_info)
       && tfm_info.family[0]
-      && strcmp((char *)tfm_info.family, "HPAUTOTFM") == 0) {
+      && EQ((char *)tfm_info.family, "HPAUTOTFM")) {
     unsigned i;
     double factor = fontptr->s / (double)0x100000;
 
     resident_count++;
     fontptr->resident_p = _TRUE;
-    strcpy(fontptr->symbol_set, (char *)tfm_info.coding_scheme);
+    strncpy(fontptr->symbol_set, (char *)tfm_info.coding_scheme, 39);
+    fontptr->symbol_set[39] = '\0';
     fontptr->resid = tfm_info.typeface_id;
     fontptr->spacing = tfm_info.spacing;
     fontptr->style = tfm_info.style;
@@ -4878,7 +4947,7 @@ struct font_entry *fontptr;
     fontptr->resident_p = _FALSE;
 
     if (tfm_info.family[0]
-        && strcmp((char *)tfm_info.family, "UNSPECIFIED") == 0) {
+        && EQ((char *)tfm_info.family, "UNSPECIFIED")) {
       Warning("font family for %s is UNSPECIFIED; need to run dvicopy?",
               fontptr->n);
       fontptr->font_file_id = NO_FILE;
@@ -5031,10 +5100,9 @@ printf("[%ld]=%lf * %lf * %lf + 0.5 = %l
   if (tfontptr->resident_p)
     return;
 
-  if (!(resident_font_located)) {
+  if (!(resident_font_located))
 #endif
 
-#ifdef KPATHSEA
     {
       kpse_glyph_file_type font_ret;
       char *name;
@@ -5047,9 +5115,9 @@ printf("[%ld]=%lf * %lf * %lf + 0.5 = %l
       if (name)
         {
           font_found = _TRUE;
-          strcpy (tfontptr->name, name);
-          free (name);
-          
+          tfontptr->name = name;
+          allocated_storage += strlen(name)+1;
+
           if (!FILESTRCASEEQ (tfontptr->n, font_ret.name)) {
               fprintf (stderr,
                        "dvilj: Font %s not found, using %s at %d instead.\n",
@@ -5071,29 +5139,6 @@ printf("[%ld]=%lf * %lf * %lf + 0.5 = %l
             tfontptr->n, dpi);
         }
     }
-#else /* not KPATHSEA */
-    if (!(findfile(PXLpath,
-                   tfontptr->n,
-                   tfontptr->font_mag,
-                   tfontptr->name,
-                   _FALSE,
-                   0))) {
-      Warning(tfontptr->name); /* contains error messsage */
-      tfontptr->font_file_id = NO_FILE;
-#ifdef __riscos
-      MakeMetafontFile(PXLpath, tfontptr->n, tfontptr->font_mag);
-#endif
-    }
-    else {
-      font_found = _TRUE;
-      if (G_verbose)
-        fprintf(ERR_STREAM,"%d: using font <%s>\n", plusid, tfontptr->name);
-    }
-#endif /* not KPATHSEA */
-
-#ifdef LJ_RESIDENT_FONTS
-  }
-#endif
 
   tfontptr->plusid = plusid;
   plusid++;
diff -U0 tetex-src-3.0/texk/dviljk/ChangeLog.dviljktemp tetex-src-3.0/texk/dviljk/ChangeLog
--- tetex-src-3.0/texk/dviljk/ChangeLog.dviljktemp	1998-03-03 11:17:39.000000000 +0100
+++ tetex-src-3.0/texk/dviljk/ChangeLog	2007-11-13 14:59:19.000000000 +0100
@@ -0,0 +1,39 @@
+2007-07-02  Joachim Schrod  <jschrod at acm.org>
+
+	* dvi2xx.c (DoSpecial): Security issue: usage of tmpnam() caused
+	tempfile race condition. I use mkdtemp() if it's available and
+	fall back to tmpnam.
+
+	Special parsing of include files was inconsistent, unify it. The
+	current parsing code still allows lots of non-sensical special
+	commands, but at least it doesn't access unrelated variables any
+	more.
+
+2007-06-28  Joachim Schrod  <jschrod at acm.org>
+
+	* dvi2xx.c: Fixed a whole bunch of buffer overflows: The program
+	did not check memory bounds for any string operation. All places
+	where strings are copied with strcpy are replaced by dynamically
+	allocated strings (with xstrdup from kpathsea) or bounded string
+	operations. Fixed also manual string copy operations on special
+	strings. Fixed array buffer overflow in defpoint and fill special
+	operations.
+	(DoSpecial): Call of ghostscript for psfile special had also a
+	potential buffer overflow caused by unchecked usage of sprintf.
+	Fix core dump: Check if all required parameters of psfile special
+	are passed.
+
+	Bumped version number up to 2.6p3.
+
+	* dvi2xx.h: Some fixed sized string arrays are pointers now, they
+	get dynamically allocated.
+	(GetBytes): Another buffer overflow: Check that the buffer size is
+	sufficient to store the read bytes. That relies on the invariant
+	that the GetBytes macro is always called with an array as argument
+	and not with a pointer.
+
+	* config.h: Throw an error if kpathsea is not used. dvi2xx.c
+	had previously already kpathsea dependencies without protecting
+	them with #if KPATHSEA. We go that road further since upstream
+	does not exist any more.
+
diff -up tetex-src-3.0/texk/dviljk/configure.dviljktemp tetex-src-3.0/texk/dviljk/configure
diff -up tetex-src-3.0/texk/dviljk/configure.in.dviljktemp tetex-src-3.0/texk/dviljk/configure.in
--- tetex-src-3.0/texk/dviljk/configure.in.dviljktemp	1999-02-08 22:42:01.000000000 +0100
+++ tetex-src-3.0/texk/dviljk/configure.in	2007-11-13 14:55:04.000000000 +0100
@@ -13,6 +13,7 @@ sinclude(../kpathsea/withenable.ac)
 dnl These tests prevent reliable cross-compilation.  Sigh.
 AC_C_CHAR_UNSIGNED
 AC_CHECK_SIZEOF(long)
+AC_CHECK_FUNCS(rmdir unlink mkdtemp)
 
 AC_OUTPUT(Makefile)
 dnl Update stamp-auto, since we just remade `c-auto.h'.
diff -up tetex-src-3.0/texk/dviljk/dvi2xx.h.dviljktemp tetex-src-3.0/texk/dviljk/dvi2xx.h
--- tetex-src-3.0/texk/dviljk/dvi2xx.h.dviljktemp	1999-03-16 08:03:33.000000000 +0100
+++ tetex-src-3.0/texk/dviljk/dvi2xx.h	2007-11-13 14:53:45.000000000 +0100
@@ -10,8 +10,8 @@
 
 #ifdef KPATHSEA
 #include <kpathsea/config.h>
+#include <kpathsea/c-std.h>
 #include <kpathsea/c-limits.h>
-#include <kpathsea/c-memstr.h>
 #include <kpathsea/magstep.h>
 #include <kpathsea/proginit.h>
 #include <kpathsea/progname.h>
@@ -24,6 +24,7 @@
 #include <string.h>
 #include <stdio.h>
 #include <stdlib.h>
+#include <unistd.h>
 #ifdef  unix
 #include <limits.h>
 #endif
@@ -41,9 +42,6 @@
 #ifdef MSC5
 #include <dos.h>     /* only for binaryopen on device  */
 #endif
-#if defined (unix) && !defined (KPATHSEA)
-#include <limits.h>
-#endif
 
 
 #include "config.h"
@@ -116,6 +114,7 @@
 #define  HUGE_SIZE  (unsigned char) 2
 #define  HUGE_CHAR_PATTERN 32767l
 #define  BYTES_PER_PIXEL_LINE 500    /* max number of bytes per pixel line */
+#define  MAX_SPECIAL_DEFPOINTS 80    /* max number of defpoint specials */
 
 
 #define PK_POST 245
@@ -281,7 +280,14 @@ char *MFMODE     = MFMODE600;
 #define VisChar(c) (unsigned char)(c)
 #endif
 
-#define GetBytes(fp,buf,n) read_multi(buf,1,n,fp) /* used to be a function */
+/* Used to be a function. buf is always an array, never a pointer.
+   Without that invariant, we would have to introduce full dynamic
+   memory management in this driver -- probably it would be easier to
+   write a new one. [27 Jun 07 -js] */
+#define GetBytes(fp,buf,n) \
+    ( sizeof(buf) != sizeof(void *) && sizeof(buf) > n ? \
+        read_multi(buf, 1, n, fp) \
+      : Fatal("Try to read %d bytes in an array of size %d", n, sizeof(buf)) )
 
 
 /**********************************************************************/
@@ -307,6 +313,7 @@ int     printf();
 int     sscanf();
 int     strcmp();
 char   *strcpy();
+char   *strncpy();
 #   ifdef MSC5
 unsigned int strlen();
 #   endif
@@ -393,7 +400,7 @@ struct font_entry {    /* font entry */
     char n[STRSIZE];          /* FNT_DEF command parameters                */
     long4    font_mag;         /* computed from FNT_DEF s and d parameters  */
     /*char psname[STRSIZE];*/ /* PostScript name of the font               */
-    char    name[STRSIZE];    /* full name of PXL file                     */
+    char    *name;	       /* full name of PXL file                     */
     FILEPTR font_file_id;      /* file identifier (NO_FILE if none)         */
 #ifdef USEPXL
     long4    magnification;    /* magnification read from PXL file          */
@@ -487,8 +494,8 @@ void    LoadAChar DVIPROTO((long4, regis
 long4   NoSignExtend DVIPROTO((FILEPTR, int));
 void    OpenFontFile DVIPROTO((void));
 long4   PixRound DVIPROTO((long4, long4));
-void    PkRaster DVIPROTO((struct char_entry *, int)); 
-void    RasterLine DVIPROTO((struct char_entry *, unsigned int, 
+void    PkRaster DVIPROTO((struct char_entry *, int));
+void    RasterLine DVIPROTO((struct char_entry *, unsigned int,
 			     unsigned int, unsigned char *));
 void    RasterChar DVIPROTO((struct char_entry *));
 void    ReadFontDef DVIPROTO((long4));
@@ -534,11 +541,12 @@ bool    LastPageSpecified = _FALSE;
 #ifndef KPATHSEA
 char   *PXLpath = FONTAREA;
 #endif
-char    G_progname[STRSIZE];     /* program name                        */
-char    filename[STRSIZE];       /* DVI file name                       */
-char    rootname[STRSIZE];       /* DVI filename without extension      */
+char   *G_progname;		 /* program name                        */
+char   *filename;	         /* DVI file name                       */
+char   *rootname;		 /* DVI filename without extension      */
 char   *HeaderFileName = "";     /* file name & path of Headerfile      */
 char   *EmitFileName = "";       /* file name & path for output         */
+char    tmp_dir[STRSIZE] = "";	 /* temporary directory for auxilliary files */
 #ifdef IBM3812
 bool    FirstAlternate = _FALSE; /* first page from alternate casette ?   */
 #endif
diff -up tetex-src-3.0/texk/dviljk/c-auto.in.dviljktemp tetex-src-3.0/texk/dviljk/c-auto.in
--- tetex-src-3.0/texk/dviljk/c-auto.in.dviljktemp	1999-03-23 23:40:08.000000000 +0100
+++ tetex-src-3.0/texk/dviljk/c-auto.in	2007-11-13 14:53:45.000000000 +0100
@@ -1,9 +1,23 @@
-/* c-auto.in.  Generated automatically from configure.in by autoheader.  */
+/* c-auto.in.  Generated from configure.in by autoheader.  */
+/* acconfig.h -- used by autoheader when generating c-auto.in.
 
-/* Define if type char is unsigned and you are not using gcc.  */
-#ifndef __CHAR_UNSIGNED__
-#undef __CHAR_UNSIGNED__
-#endif
+   If you're thinking of editing acconfig.h to fix a configuration
+   problem, don't. Edit the c-auto.h file created by configure,
+   instead.  Even better, fix configure to give the right answer.  */
+
+/* Define to 1 if you have the `mkdtemp' function. */
+#undef HAVE_MKDTEMP
+
+/* Define to 1 if you have the `rmdir' function. */
+#undef HAVE_RMDIR
 
-/* The number of bytes in a long.  */
+/* Define to 1 if you have the `unlink' function. */
+#undef HAVE_UNLINK
+
+/* The size of a `long', as computed by sizeof. */
 #undef SIZEOF_LONG
+
+/* Define to 1 if type `char' is unsigned and you are not using gcc.  */
+#ifndef __CHAR_UNSIGNED__
+# undef __CHAR_UNSIGNED__
+#endif
diff -up tetex-src-3.0/texk/dviljk/config.h.dviljktemp tetex-src-3.0/texk/dviljk/config.h
--- tetex-src-3.0/texk/dviljk/config.h.dviljktemp	2002-01-03 17:40:25.000000000 +0100
+++ tetex-src-3.0/texk/dviljk/config.h	2007-11-13 14:53:45.000000000 +0100
@@ -216,12 +216,7 @@ typedef SCHAR_TYPE signed_char;
 #endif
 
 #ifndef KPATHSEA
-extern bool findfile(
-#if NeedFunctionPrototypes
-char path[], char n[], long4 fontmag, char name[], 
-	      bool tfm, int level
-#endif
-    );
+#error "Would need changed findfile, dviljk has changed allocation semantic of name member in tfontptr"
 #endif
 
 
@@ -444,3 +439,24 @@ typedef  FILE *FILEPTR;
 /* If we have neither, should fall back to fprintf with fixed args.  */
 #endif
 #endif
+
+/* If unlink and rmdir are not there, we don't delete the temporary files. */
+#ifndef HAVE_RMDIR
+#define rmdir(dir)
+#endif
+#ifndef HAVE_UNLINK
+#define unlink(file)
+#endif
+
+/* If mkdtemp() does not exist, we have to use tmpnam(). */
+#ifndef HAVE_MKDTEMP
+#define mkdtemp(dir) (tmpnam(dir) ? \
+		      ( mkdir(dir, 0700) == -1 ? NULL : dir ) :	\
+		      ( errno = EINVAL, NULL ) )
+#endif
+
+#ifndef KPATHSEA
+/* FIXME: Should provide a strdup function. But currently this tree is
+   only used in connection with kpathsea anyhow. */
+#error "Need xstrdup and xmalloc function, e.g. from kpathsea"
+#endif

texlive-dvipdfm_timezone.patch:

--- NEW FILE texlive-dvipdfm_timezone.patch ---
# 61_dvipdfm_timezone by "Mark A. Wicks" <mwicks at kettering.edu>
#
# fix crash of dvipdfm with 0.5 timezones

 build/source/texk/dvipdfm/pdfdoc.c |   34 +++++++++++++++++++++++-----------
 1 file changed, 23 insertions(+), 11 deletions(-)

Index: texlive-bin-2007/build/source/texk/dvipdfm/pdfdoc.c
===================================================================
--- texlive-bin-2007.orig/build/source/texk/dvipdfm/pdfdoc.c	2006-01-17 22:41:51.000000000 +0100
+++ texlive-bin-2007/build/source/texk/dvipdfm/pdfdoc.c	2007-02-15 15:53:08.000000000 +0100
@@ -232,13 +232,7 @@
 
 static char *asn_date (void)
 {
-#ifndef HAVE_TIMEZONE
-  #ifdef TM_GM_TOFF
-     #define timezone (bdtime->gm_toff)
-  #else
-     #define timezone 0l
-#endif /* TM_GM_TOFF */
-#endif /* HAVE_TIMEZONE */
+  long tz_offset;
   static char date_string[24];
   time_t current_time;
   struct tm *bd_time;
@@ -247,10 +241,28 @@
   }
   time(&current_time);
   bd_time = localtime(&current_time);
-  sprintf (date_string, "D:%04d%02d%02d%02d%02d%02d%+03ld'%02ld'",
-	   bd_time -> tm_year+1900, bd_time -> tm_mon+1, bd_time -> tm_mday,
-	   bd_time -> tm_hour, bd_time -> tm_min, bd_time -> tm_sec,
-	   -timezone/3600, timezone%3600);
+
+#ifdef HAVE_TM_GMTOFF  /* Preferred way to get time zone offset */
+  tz_offset = bd_time->tm_gmtoff;
+#else
+#ifdef HAVE_TIMEZONE   /* Plan B --- use external variable 'timezone'
+                       /* (may not provide correct offset for daylight savings time) */
+  tz_offset = - timezone;
+#else                  /* Last resort --- without more information, set offset to zero */
+  tz_offset = 0l;
+#endif /* HAVE_TIMEZONE */
+#endif /* HAVE_TM_GMTOFF */
+
+  if (tz_offset == 0l) {
+    sprintf (date_string, "D:%04d%02d%02d%02d%02d%02dZ00'00'",
+	     bd_time -> tm_year+1900, bd_time -> tm_mon+1, bd_time -> tm_mday,
+	     bd_time -> tm_hour, bd_time -> tm_min, bd_time -> tm_sec);
+  } else {
+    sprintf (date_string, "D:%04d%02d%02d%02d%02d%02d%c%02ld'%02ld'",
+             bd_time -> tm_year+1900, bd_time -> tm_mon+1, bd_time -> tm_mday,
+             bd_time -> tm_hour, bd_time -> tm_min, bd_time -> tm_sec,
+	     (tz_offset>0)? '+':'-', labs(tz_offset)/3600, (labs(tz_offset)/60)%60);
+  }
   return date_string;
 }
 

texlive-dvips_fontbug_fix_upstream.patch:

--- NEW FILE texlive-dvips_fontbug_fix_upstream.patch ---
---
 build/source/texk/dvipsk/ChangeLog     |   36 +++++++++++++++++++
 build/source/texk/dvipsk/Makefile.in   |    2 -
 build/source/texk/dvipsk/afm2tfm.c     |    6 +--
 build/source/texk/dvipsk/afm2tfm.rc    |   34 ------------------
 build/source/texk/dvipsk/bbox.c        |    2 -
 build/source/texk/dvipsk/config.h      |    2 -
 build/source/texk/dvipsk/crop.lpro     |    2 -
 build/source/texk/dvipsk/debug.h       |    2 -
 build/source/texk/dvipsk/download.c    |   25 +++++++++----
 build/source/texk/dvipsk/dpicheck.c    |    6 +--
 build/source/texk/dvipsk/dvips.1       |   25 ++++++++-----
 build/source/texk/dvipsk/dvips.c       |   61 +++++++++++++++++++++++++++------
 build/source/texk/dvipsk/dvips.h       |   14 ++-----
 build/source/texk/dvipsk/emspecial.c   |   15 ++++++--
 build/source/texk/dvipsk/finclude.c    |   11 +++++
 build/source/texk/dvipsk/finclude.lpro |    1 
 build/source/texk/dvipsk/flib.c        |    2 -
 build/source/texk/dvipsk/header.c      |    4 +-
 build/source/texk/dvipsk/hps.c         |    4 +-
 build/source/texk/dvipsk/hps.lpro      |    5 +-
 build/source/texk/dvipsk/loadfont.c    |   11 +++++
 build/source/texk/dvipsk/makefont.c    |    6 +--
 build/source/texk/dvipsk/output.c      |   11 +++++
 build/source/texk/dvipsk/papersiz.c    |    2 -
 build/source/texk/dvipsk/paths.h       |    2 -
 build/source/texk/dvipsk/psfonts.map   |    1 
 build/source/texk/dvipsk/resident.c    |   24 +++++++++++-
 build/source/texk/dvipsk/special.lpro  |    5 +-
 build/source/texk/dvipsk/squeeze.c     |    5 --
 build/source/texk/dvipsk/tex.lpro      |    2 +
 build/source/texk/dvipsk/texc.script   |    2 -
 build/source/texk/dvipsk/texps.lpro    |    2 -
 32 files changed, 220 insertions(+), 112 deletions(-)

Index: texlive-bin-2007/build/source/texk/dvipsk/ChangeLog
===================================================================
--- texlive-bin-2007.orig/build/source/texk/dvipsk/ChangeLog	2007-05-07 01:17:36.000000000 +0200
+++ texlive-bin-2007/build/source/texk/dvipsk/ChangeLog	2007-05-07 01:38:37.000000000 +0200
@@ -1,3 +1,39 @@
+2007-05-06  Karl Berry  <karl at tug.org>
+
+	* finclude.c, dvips.c: keep track of last-unused psname (Akira).
+	* dvips.c (DEFRES): move down.
+	* dvips.c (--help): just mention Tom R.
+
+2007-05-05  Karl Berry  <karl at tug.org>
+
+	* dvips.h (DOWNLOADEDPSSIZE): new constant.
+	* dvips.c (downloadedpsname): new global array.
+	* finclude.c: set it up as we download.
+	* download.c: use it to avoid downloading fonts as both header
+	and font.  (From Akira.)
+
+2007-05-04  Karl Berry  <karl at tug.org>
+
+	* dvips.h (BANNER): change to 5.96dev to distinguish from the release.
+
+	* header.c (add_name, add_header): cast result of
+	add_header_general to int and return it.  From Akira.
+
+2007-03-23  Karl Berry  <karl at tug.org>
+
+	* dvips.texi: document it.
+	* dvips.c, loadfont.c, resident.c: also report map files
+	and config files, if the envvar DVIPSDEBUG is set.  From Akira.
+
+2007-03-20  Karl Berry  <karl at tug.org>
+
+	* download.c, output.c, emspecial.c: report full pathnames,
+	to help debugging and for consistency with TeX.  From Akira.
+
+2007-03-19  Karl Berry  <karl at tug.org>
+
+	* config.ps (screen): add this, 8.25x11, for powerdot.  (From Akira.)
+
 2006-12-09  Karl Berry  <karl at tug.org>
 
 	* dvips.texi (Config file paper sizes): best match now.  (From Akira.)
Index: texlive-bin-2007/build/source/texk/dvipsk/Makefile.in
===================================================================
--- texlive-bin-2007.orig/build/source/texk/dvipsk/Makefile.in	2007-05-07 01:38:11.000000000 +0200
+++ texlive-bin-2007/build/source/texk/dvipsk/Makefile.in	2007-05-07 01:38:37.000000000 +0200
@@ -1,5 +1,5 @@
 # Makefile for dvipsk -- kb at mail.tug.org. Public domain.
-version = 5.96
+version = 5.96.1
 
 # Add -DDEFRES=dpi to DEFS to change the default resolution from 600.
 # Add -DSECURE if you will install dvips with special privileges.
Index: texlive-bin-2007/build/source/texk/dvipsk/afm2tfm.c
===================================================================
--- texlive-bin-2007.orig/build/source/texk/dvipsk/afm2tfm.c	2007-05-07 01:17:54.000000000 +0200
+++ texlive-bin-2007/build/source/texk/dvipsk/afm2tfm.c	2007-05-07 01:38:37.000000000 +0200
@@ -1489,15 +1489,15 @@
 void version P1C(FILE *, f)
 {
   extern KPSEDLL char *kpathsea_version_string;
-  fputs ("afm2tfm(k) (dvips(k) 5.96) 8.1\n", f);
+  fputs ("afm2tfm(k) (dvips(k) 5.96.1) 8.1\n", f);
   fprintf (f, "%s\n", kpathsea_version_string);
-  fputs ("Copyright (C) 2005 Radical Eye Software.\n\
+  fputs ("Copyright (C) 2007 Radical Eye Software.\n\
 There is NO warranty.  You may redistribute this software\n\
 under the terms of the GNU General Public License\n\
 and the Dvips copyright.\n\
 For more information about these matters, see the files\n\
 named COPYING and afm2tfm.c.\n\
-Primary author of afm2tfm: T. Rokicki; -k maintainer: K. Berry.\n", f);
+Original author of afm2tfm: T. Rokicki.\n", f);
 }
 
 #define USAGE "\
Index: texlive-bin-2007/build/source/texk/dvipsk/afm2tfm.rc
===================================================================
--- texlive-bin-2007.orig/build/source/texk/dvipsk/afm2tfm.rc	2007-05-07 01:38:11.000000000 +0200
+++ /dev/null	1970-01-01 00:00:00.000000000 +0000
@@ -1,34 +0,0 @@
-/* afm2tfm.rc: afm2tfm resources			-*- C++ -*-
-
-   Copyright (C) 1996-2003 Fabrice Popineau <fabrice.popineau at supelec.fr>
-
-   This file is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published
-   by the Free Software Foundation; either version 2, or (at your
-   option) any later version.
-
-   This file is distributed in the hope that it will be useful, but
-   WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   General Public License for more details.
-
-   You should have received a copy of the GNU General Public License
-   along with this file; if not, write to the Free Software
-   Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
-   USA. */
-
-#include <texlive-version.h>
-
-#define VER_FILEVERSION TEXLIVE_MAJOR_VERSION,TEXLIVE_MINOR_VERSION,TEXLIVE_BETA_NUMBER,TEXLIVE_ALPHA_NUMBER
-#define VER_FILEVERSION_STR TEXLIVE_PRODUCTVERSION_STR " afm2tfm(k) (dvips(k) 5.94b) 8.1"
-
-#define VER_INTERNALNAME_STR "afm2tfm"
-#define VER_ORIGINALFILENAME_STR "afm2tfm.exe"
-
-#define VER_LEGALCOPYRIGHT_STR "Copyright (C) 1990-2004 Radical Eye Software"
-
-#define VER_FILEDESCRIPTION_STR "Adobe Font Metric to TeX Font Metric file converter"
-
-#include <texlive.version>
-
-/* afm2tfm.rc ends here */
Index: texlive-bin-2007/build/source/texk/dvipsk/bbox.c
===================================================================
--- texlive-bin-2007.orig/build/source/texk/dvipsk/bbox.c	2007-05-07 01:38:11.000000000 +0200
+++ texlive-bin-2007/build/source/texk/dvipsk/bbox.c	2007-05-07 01:38:37.000000000 +0200
@@ -6,7 +6,7 @@
  *   If you request an EPSF file and specify -a, you may end up
  *   processing a single page four times!
  */
-#include "dvips.h"
+#include "dvips.h" /* The copyright notice in that file is included too! */
 #include <math.h>
 #include "protos.h"
 
Index: texlive-bin-2007/build/source/texk/dvipsk/config.h
===================================================================
--- texlive-bin-2007.orig/build/source/texk/dvipsk/config.h	2007-05-07 01:38:11.000000000 +0200
+++ texlive-bin-2007/build/source/texk/dvipsk/config.h	2007-05-07 01:38:37.000000000 +0200
@@ -1,5 +1,5 @@
 /* config.h: master configuration file, included first by all compilable
-   source files (not headers).  */
+   source files (not headers).  This file is public domain.  */
 
 #ifndef CONFIG_H
 #define CONFIG_H
Index: texlive-bin-2007/build/source/texk/dvipsk/crop.lpro
===================================================================
--- texlive-bin-2007.orig/build/source/texk/dvipsk/crop.lpro	2007-05-07 01:38:11.000000000 +0200
+++ texlive-bin-2007/build/source/texk/dvipsk/crop.lpro	2007-05-07 01:38:37.000000000 +0200
@@ -1,5 +1,5 @@
 %!
-%   This file is for crop marks.
+%   This file is for crop marks.  This file is public domain.
 %
 %   First, we translate and draw the marks.  You can change the way the
 %   marks are drawn, but the quarter inch border around the page is fixed.
Index: texlive-bin-2007/build/source/texk/dvipsk/debug.h
===================================================================
--- texlive-bin-2007.orig/build/source/texk/dvipsk/debug.h	2007-05-07 01:38:11.000000000 +0200
+++ texlive-bin-2007/build/source/texk/dvipsk/debug.h	2007-05-07 01:38:37.000000000 +0200
@@ -1,5 +1,5 @@
 /* 
- * Here's some stuff for debugging dvips.
+ * Here's some stuff for debugging dvips.  See dvips.h for copyright.
  */
 
 #ifdef DEBUG
Index: texlive-bin-2007/build/source/texk/dvipsk/download.c
===================================================================
--- texlive-bin-2007.orig/build/source/texk/dvipsk/download.c	2007-05-07 01:17:43.000000000 +0200
+++ texlive-bin-2007/build/source/texk/dvipsk/download.c	2007-05-07 01:38:37.000000000 +0200
@@ -433,6 +433,9 @@
  *   Download a PostScript font, using partial font downloading if
  *   necessary.
  */
+extern char *downloadedpsnames[];
+extern int unused_top_of_psnames;
+
 void downpsfont P2C(charusetype *, p, charusetype *, all)
 {
 #ifdef DOWNLOAD_USING_PDFTEX
@@ -444,6 +447,8 @@
     register chardesctype *c ;
     struct resfont *rf ;
     int cc;
+    extern char *realnameoffile ;
+    int j;
 
     curfnt = p->fd ;
     rf = curfnt->resfont ;
@@ -457,6 +462,10 @@
        return ;
     if (rf->sent == 2) /* sent as header, from a PS file */
        return ;
+    for (j=0; downloadedpsnames[j] && j < unused_top_of_psnames; j++) {
+       if (strcmp (downloadedpsnames[j], rf->PSname) == 0)
+          return;
+    }
     if (all->fd == 0)
        error("! internal error in downpsfont") ;
     if (!partialdownload) {
@@ -514,14 +523,6 @@
         }
     }
     if(GridCount!=0 || extraGlyphs) {
-        if (!quiet) {
-           if (strlen(rf->Fontfile) + prettycolumn > STDOUTSIZE) {
-              fprintf(stderr, "\n") ;
-              prettycolumn = 0 ;
-           }
-           (void)fprintf(stderr, "<%s>", rf->Fontfile);
-	   prettycolumn += strlen(rf->Fontfile) + 2 ;
-	}
         newline() ;
         if (! disablecomments)
            (void)fprintf(bitfile, "%%%%BeginFont: %s\n",  rf->PSname);
@@ -531,6 +532,14 @@
         if(FontPart(bitfile, rf->Fontfile, rf->Vectfile) < 0)
 #endif
             exit(1);
+        if (!quiet) {
+           if (strlen(realnameoffile) + prettycolumn > STDOUTSIZE) {
+              fprintf(stderr, "\n") ;
+              prettycolumn = 0 ;
+           }
+           (void)fprintf(stderr, "<%s>", realnameoffile);
+	   prettycolumn += strlen(realnameoffile) + 2 ;
+	}
         if (! disablecomments)
            (void)fprintf(bitfile, "%%%%EndFont \n");
    }
Index: texlive-bin-2007/build/source/texk/dvipsk/dpicheck.c
===================================================================
--- texlive-bin-2007.orig/build/source/texk/dvipsk/dpicheck.c	2007-05-07 01:38:11.000000000 +0200
+++ texlive-bin-2007/build/source/texk/dvipsk/dpicheck.c	2007-05-07 01:38:37.000000000 +0200
@@ -1,12 +1,10 @@
 /*
- *   This software is Copyright 1988 by Radical Eye Software.
- */
-/*
  *   dpicheck of dvips.c.  Checks the dots per inch to make sure
  *   it exists.  The fonts which exist are DPI at the appropriate
  *   magnifications.
  */
-#include "dvips.h"
+#include "dvips.h" /* The copyright notice in that file is included too! */
+
 extern int actualdpi ;
 static integer existsizes[30] = { 0 , 99999999 } ;
 static int checkdpi ;
Index: texlive-bin-2007/build/source/texk/dvipsk/dvips.1
===================================================================
--- texlive-bin-2007.orig/build/source/texk/dvipsk/dvips.1	2007-05-07 01:18:03.000000000 +0200
+++ texlive-bin-2007/build/source/texk/dvipsk/dvips.1	2007-05-07 01:38:37.000000000 +0200
@@ -360,16 +360,21 @@
 .B -r
 Stack pages in reverse order.  Normally, page 1 will be printed first.
 .TP
-.B -R
-Run in secure mode. This means that ``backtick'' commands from a
-.I \especial{}
-or
-.I \epsffile{}
-macro in the (La)TeX source like
-.I \especial{psfile="`zcat foo.ps.Z"}
-or
-.I \epsffile[72 72 540 720]{"`zcat screendump.ps.gz"}
-are not executed.
+.B -R[0|1|2]
+Run securely.
+.BR -R2
+disables both shell command execution in
+.I \especial'{}
+(via backticks
+.BR `
+) and config files (via the
+.I E
+option), and opening of any absolute filenames.
+.BR -R1
+, the default, forbids shell escapes but allows absolute filenames.
+.BR -R0
+allows both.  The config file option is
+.I z
 .TP
 .B -s
 Causes the entire global output to be enclosed in a save/restore pair.
Index: texlive-bin-2007/build/source/texk/dvipsk/dvips.c
===================================================================
--- texlive-bin-2007.orig/build/source/texk/dvipsk/dvips.c	2007-05-07 01:18:12.000000000 +0200
+++ texlive-bin-2007/build/source/texk/dvipsk/dvips.c	2007-05-07 01:38:37.000000000 +0200
@@ -1,10 +1,6 @@
 /*
  *   This is the main routine.
  */
-#ifndef DEFRES
-#define DEFRES (600)
-#endif
-
 #include "dvips.h" /* The copyright notice there is included too! */
 #ifdef KPATHSEA
 #include <kpathsea/c-pathch.h>
@@ -44,12 +40,22 @@
 #include descrip
 #endif
 #endif
+
+#ifndef DEFRES
+#define DEFRES (600)
+#endif
+
 /*
  *   First we define some globals.
  */
 #ifdef VMS
     static char ofnme[252],infnme[252],pap[40],thh[20];
 #endif
+
+/* PS fonts fully downloaded as headers */ 
+char *downloadedpsnames[DOWNLOADEDPSSIZE];  
+
+int unused_top_of_psnames ;   /* unused top number of downloadedpsnames[#] */
 fontdesctype *fonthead ;      /* list of all fonts mentioned so far */
 fontdesctype *curfnt ;        /* the currently selected font */
 sectiontype *sections ;       /* sections to process document in */
@@ -159,6 +165,7 @@
 int quiet ;                   /* should we only print errors to stderr? */
 int filter ;                  /* act as filter default output to stdout,
                                                default input to stdin? */
+int dvips_debug_flag ;        /* output config and map files to stderr if 1 */
 int prettycolumn ;            /* the column we are at when running pretty */
 int gargc ;                   /* global argument count */
 char **gargv ;                /* global argument vector */
@@ -306,6 +313,16 @@
    fputs (kpse_bug_address, f);
 #endif
 }
+
+void
+freememforpsnames(void)
+{
+   int i;
+
+   for (i = 0; i < unused_top_of_psnames && downloadedpsnames[i]; i++)
+      free (downloadedpsnames[i]);
+}
+
 /*
  *   This error routine prints an error message; if the first
  *   character is !, it aborts the job.
@@ -328,6 +345,7 @@
    }
    
    if (*s=='!') {
+      freememforpsnames() ;
       if (bitfile != NULL) {
          cleanprinter() ;
       }
@@ -440,6 +458,8 @@
    i = 10;
    for (s="abcdef"; *s!=0; s++)
       xdig[(int)*s] = i++;
+   for(i=0 ; i < DOWNLOADEDPSSIZE; i++)
+      downloadedpsnames[i] = NULL;
    morestrings() ;
    maxpages = 100000 ;
    numcopies = 1 ;
@@ -552,7 +572,7 @@
 #ifdef MVSXA
    int firstext = -1 ;
 #endif
-   register sectiontype *sects ;
+   sectiontype *sects ;
 
 #ifdef KPATHSEA
    kpse_set_program_name (argv[0], "dvips");
@@ -607,15 +627,15 @@
         exit (0);
       } else if (strcmp (argv[1], "--version") == 0) {
         extern KPSEDLL char *kpathsea_version_string;
-        puts ("dvips(k) 5.96");
+        puts ("dvips(k) 5.96.1");
         puts (kpathsea_version_string);
-        puts ("Copyright (C) 2005 Radical Eye Software.\n\
+        puts ("Copyright (C) 2007 Radical Eye Software.\n\
 There is NO warranty.  You may redistribute this software\n\
 under the terms of the GNU General Public License\n\
 and the Dvips copyright.\n\
 For more information about these matters, see the files\n\
 named COPYING and dvips.h.\n\
-Primary author of Dvips: T. Rokicki; -k maintainer: T. Kacvinsky/ S. Rahtz.");
+Primary author of Dvips: T. Rokicki.");
         exit (0);
       }
       if (argc == 2 && strncmp(argv[1], "-?", 2) == 0) {
@@ -630,6 +650,20 @@
    }
 #endif
 #endif
+   dvips_debug_flag = 0 ;
+   { /* for compilers incompatible with c99 */
+      char *s = (char *)getenv ("DVIPSDEBUG") ;
+      if (s) {
+         dvips_debug_flag = 1 ;
+         free (s) ;
+      } else {
+         s = (char *) getenv ("KPATHSEA_DEBUG") ;
+         if (s) {
+           dvips_debug_flag = 1 ;
+           free (s) ;
+         }
+      }
+   }
    initialize() ;
    checkenv(0) ;
    getdefaults(CONFIGFILE) ;
@@ -1116,8 +1150,14 @@
    revpslists() ;
    getpsinfo((char *)NULL) ;
    revpslists() ;
-   if (!quiet)
-      (void)fprintf(stderr, "%s %s\n", banner, banner2) ;
+   if (dvips_debug_flag) {
+      if (!quiet)
+         (void)fprintf(stderr, "\n%s %s\n", banner, banner2) ;
+      prettycolumn = 0 ;
+   } else {
+      if (!quiet)
+         (void)fprintf(stderr, "%s %s\n", banner, banner2) ;
+   }
    if (*iname) {
       dvifile = fopen(iname, READBIN) ;
 /*
@@ -1367,6 +1407,7 @@
 	 }
       }
    }
+   freememforpsnames() ;
    if (! sepfiles) {
 #ifdef HPS
       if (HPS_FLAG)
Index: texlive-bin-2007/build/source/texk/dvipsk/dvips.h
===================================================================
--- texlive-bin-2007.orig/build/source/texk/dvipsk/dvips.h	2007-05-07 01:18:25.000000000 +0200
+++ texlive-bin-2007/build/source/texk/dvipsk/dvips.h	2007-05-07 01:38:37.000000000 +0200
@@ -1,19 +1,14 @@
 /*
  *   This is dvips, a freely redistributable PostScript driver
- *   for dvi files.  It is (C) Copyright 1986-2004 by Tomas Rokicki.
- *   You may modify and use this program to your heart's content,
- *   so long as you send modifications to Tomas Rokicki.  It can
- *   be included in any distribution, commercial or otherwise, so
- *   long as the banner string defined below is not modified (except
- *   for the version number) and this banner is printed on program
- *   invocation, or can be printed on program invocation with the -? option.
+ *   for dvi files.  It is (C) Copyright 1986-2007 by Tomas Rokicki.
+ *   You may modify and use this program to your heart's content.
  */
 
 /*   This file is the header for dvips's global data structures. */
 
 #define CREATIONDATE
 #define BANNER \
-"This is dvips(k) 5.96 Copyright 2005 Radical Eye Software"
+"This is dvips(k) 5.96.1 Copyright 2007 Radical Eye Software"
 #define BANNER2 "(www.radicaleye.com)"
 #ifdef KPATHSEA
 #include "config.h"
@@ -58,13 +53,14 @@
  *   of a string that can be handled in specials, so it should not be
  *   set too small.
  */
-#define STRINGSIZE (200000)  /* maximum total chars in strings in program */
+#define STRINGSIZE (200000) /* maximum total chars in strings in program */
 #define RASTERCHUNK (8192)  /* size of chunk of raster */
 #define MINCHUNK (240)      /* minimum size char to get own raster */
 #define STACKSIZE (350)     /* maximum stack size for dvi files */
 #define MAXFRAME (10)       /* maximum depth of virtual font recursion */
 #define MAXFONTHD (100)     /* number of unique names of included fonts */
 #define STDOUTSIZE (75)     /* width of a standard output line */
+#define DOWNLOADEDPSSIZE (1000)  /* max number of downloaded fonts to check */
 /*
  *   Other constants, which define printer-dependent stuff.
  */
Index: texlive-bin-2007/build/source/texk/dvipsk/emspecial.c
===================================================================
--- texlive-bin-2007.orig/build/source/texk/dvipsk/emspecial.c	2007-05-07 01:38:12.000000000 +0200
+++ texlive-bin-2007/build/source/texk/dvipsk/emspecial.c	2007-05-07 01:38:37.000000000 +0200
@@ -659,14 +659,23 @@
 void imagehead P5C(char *, filename, int, wide, int, high, 
 		   float, emwidth, float, emheight)
 {
+	char *fullname = NULL, *name ;
 	if (!quiet) {
-	    if (strlen(filename) + prettycolumn > STDOUTSIZE) {
+#ifdef KPATHSEA
+	    fullname = (char *)kpse_find_file (filename, pictpath, 0) ;
+#endif
+	    if (!fullname)
+		name = filename ;
+	    else
+		name = fullname ;
+	    if (strlen(name) + prettycolumn > STDOUTSIZE) {
 		fprintf(stderr,"\n");
 		prettycolumn = 0;
 	    }
-	    (void)fprintf(stderr,"<%s",filename);
+	    (void)fprintf(stderr,"<%s",name);
 	    (void)fflush(stderr);
-	    prettycolumn += 2+strlen(filename);
+	    prettycolumn += 2+strlen(name);
+	    if (fullname) free (fullname);
 	}
 	hvpos();
 	nlcmdout("@beginspecial @setspecial") ;
Index: texlive-bin-2007/build/source/texk/dvipsk/finclude.c
===================================================================
--- texlive-bin-2007.orig/build/source/texk/dvipsk/finclude.c	2007-05-07 01:17:29.000000000 +0200
+++ texlive-bin-2007/build/source/texk/dvipsk/finclude.c	2007-05-07 01:38:37.000000000 +0200
@@ -57,6 +57,9 @@
 extern integer debug_flag;
 #endif  /* DEBUG */
 
+extern char *downloadedpsnames[];
+extern int unused_top_of_psnames;
+
 /*
  * Create a font descriptor for a font included in a psfile.  There will be
  * no fontmaptype node for the resulting font descriptor until this font is
@@ -252,6 +255,10 @@
   char *p,*pe;
   struct resfont *re;
   int i;
+  int j = 0;
+
+  while (downloadedpsnames[j] != NULL && j < DOWNLOADEDPSSIZE)
+    j++;
 
   /* Turn all newlines, CRs, and tabs into spaces. */
   p = str;
@@ -312,6 +319,10 @@
 	    infont = 0 ;
           }
           re->sent = 2 ;
+          if (unused_top_of_psnames < DOWNLOADEDPSSIZE) {
+             downloadedpsnames[unused_top_of_psnames] = xstrdup (re->PSname);
+             unused_top_of_psnames++;
+          }
         } else {
           char eb[1000];
           sprintf(eb,"Font %s used in file %s is not in the mapping file.",
Index: texlive-bin-2007/build/source/texk/dvipsk/finclude.lpro
===================================================================
--- texlive-bin-2007.orig/build/source/texk/dvipsk/finclude.lpro	2007-05-07 01:38:12.000000000 +0200
+++ texlive-bin-2007/build/source/texk/dvipsk/finclude.lpro	2007-05-07 01:38:37.000000000 +0200
@@ -1,4 +1,5 @@
 %!
+% finclude.lpro - public domain.
 % Define tfm-name to be a dictionary of included fonts indexed by size:
 % /tfm-name  scaled-size1 /font-select1 ... scsize_k /fselect_k  k  fstore  -
 /fstore
Index: texlive-bin-2007/build/source/texk/dvipsk/flib.c
===================================================================
--- texlive-bin-2007.orig/build/source/texk/dvipsk/flib.c	2007-05-07 01:38:12.000000000 +0200
+++ texlive-bin-2007/build/source/texk/dvipsk/flib.c	2007-05-07 01:38:37.000000000 +0200
@@ -4,7 +4,7 @@
  *   Tomas Rokicki or Radical Eye Software; use at your own risk.
  */
 #ifdef FONTLIB
-#include "dvips.h"
+#include "dvips.h" /* The copyright notice in that file is included too! */
 #include "paths.h"
 #include "protos.h"
 extern int debug_flag ;
Index: texlive-bin-2007/build/source/texk/dvipsk/header.c
===================================================================
--- texlive-bin-2007.orig/build/source/texk/dvipsk/header.c	2007-05-07 01:18:19.000000000 +0200
+++ texlive-bin-2007/build/source/texk/dvipsk/header.c	2007-05-07 01:38:37.000000000 +0200
@@ -35,7 +35,7 @@
 int
 add_name P2C(char *, s, struct header_list **, what)
 {
-  add_name_general (s, what, NULL, NULL);
+  return (int) add_name_general (s, what, NULL, NULL);
 }
 
 /*
@@ -122,7 +122,7 @@
 int
 add_header P1C(char *, s)
 {
-  add_header_general (s, NULL, NULL);
+  return (int) add_header_general (s, NULL, NULL);
 }
 
 int
Index: texlive-bin-2007/build/source/texk/dvipsk/hps.c
===================================================================
--- texlive-bin-2007.orig/build/source/texk/dvipsk/hps.c	2007-05-07 01:38:12.000000000 +0200
+++ texlive-bin-2007/build/source/texk/dvipsk/hps.c	2007-05-07 01:38:37.000000000 +0200
@@ -1,8 +1,8 @@
 /* This is the main file for hacking dvips to do HyperPostScript
  * Written by Mark D. Doyle 11/94. It is (C) Copyright 1994 by Mark D. Doyle
  * and the University of California. You may modify and use this program to
- * your heart's content, so long as you send modifications to Mark Doyle and
- * abide by the rest of the dvips copyrights. 
+ * your heart's content.  Mark Doyle requests that you send him
+ * any modifications.
  */
 #include "dvips.h"
 #ifdef HPS
Index: texlive-bin-2007/build/source/texk/dvipsk/hps.lpro
===================================================================
--- texlive-bin-2007.orig/build/source/texk/dvipsk/hps.lpro	2007-05-07 01:38:12.000000000 +0200
+++ texlive-bin-2007/build/source/texk/dvipsk/hps.lpro	2007-05-07 01:38:37.000000000 +0200
@@ -5,8 +5,9 @@
 % Written by Tanmoy Bhattacharya and Mark D. Doyle 11/94. 
 % It is (C) Copyright 1994 by Tanmoy Bhattacharya, Mark D. Doyle
 % and the University of California. You may modify and use this program to
-% your heart's content, so long as you send modifications to Tanmoy
-% Bhattacharya and/or Mark Doyle.
+% your heart's content. Tanmoy Bhattacharya and Mark Doyle request that
+% you send either or both them any modifications.
+% 
 % Version number info
 %   1 0 Probably first release
 %   1 1 Added external handler to let ghostview work
Index: texlive-bin-2007/build/source/texk/dvipsk/loadfont.c
===================================================================
--- texlive-bin-2007.orig/build/source/texk/dvipsk/loadfont.c	2007-05-07 01:38:12.000000000 +0200
+++ texlive-bin-2007/build/source/texk/dvipsk/loadfont.c	2007-05-07 01:38:37.000000000 +0200
@@ -333,6 +333,9 @@
    register chardesctype *cd = 0 ;
    int maxcc = 0 ;
    int munged = 0 ;
+   extern int prettycolumn ;
+   extern int quiet ;
+   extern char *realnameoffile ;
 /*
  *   We clear out some pointers:
  */
@@ -358,6 +361,14 @@
       tfmload(curfnt) ;
       return ;
    }
+   if (!quiet) {
+      if (strlen(realnameoffile) + prettycolumn > STDOUTSIZE) {
+         fprintf(stderr, "\n") ;
+         prettycolumn = 0 ;
+      }
+      (void)fprintf(stderr, "<%s>", realnameoffile);
+      prettycolumn += strlen(realnameoffile) + 2 ;
+   }
 #ifdef DEBUG
    if (dd(D_FONTS))
       (void)fprintf(stderr,"Loading pk font %s at %.1fpt\n",
Index: texlive-bin-2007/build/source/texk/dvipsk/makefont.c
===================================================================
--- texlive-bin-2007.orig/build/source/texk/dvipsk/makefont.c	2007-05-07 01:38:12.000000000 +0200
+++ texlive-bin-2007/build/source/texk/dvipsk/makefont.c	2007-05-07 01:38:37.000000000 +0200
@@ -1,7 +1,5 @@
-/*
- *   This software is Copyright 1988 by Radical Eye Software.
- */
-#include "dvips.h"
+/* makefont.c */
+#include "dvips.h" /* The copyright notice in that file is included too! */
 #include <math.h>
 #include "protos.h"
 extern int quiet ;
Index: texlive-bin-2007/build/source/texk/dvipsk/output.c
===================================================================
--- texlive-bin-2007.orig/build/source/texk/dvipsk/output.c	2007-05-07 01:38:12.000000000 +0200
+++ texlive-bin-2007/build/source/texk/dvipsk/output.c	2007-05-07 01:38:37.000000000 +0200
@@ -113,6 +113,7 @@
 void
 copyfile_general P2C(char *, s, struct header_list *, cur_header)
 {
+   extern char *realnameoffile ;
    FILE *f = NULL ;
    int c, prevc = '\n' ;
    long len ;
@@ -205,7 +206,11 @@
       error(errbuf) ;
    else {
       if (! quiet) {
+#if defined(VMCMS) || defined (MVSXA)
          if (strlen(s) + prettycolumn > STDOUTSIZE) {
+#else
+         if (strlen(realnameoffile) + prettycolumn > STDOUTSIZE) {
+#endif
             fprintf(stderr, "\n") ;
             prettycolumn = 0 ;
          }
@@ -215,11 +220,15 @@
 #ifdef MVSXA
          (void)fprintf(stderr, "<%s>", trunc_s) ;
 #else
-         (void)fprintf(stderr, "<%s>", s) ;
+         (void)fprintf(stderr, "<%s>", realnameoffile) ;
 #endif
 #endif
          (void)fflush(stderr) ;
+#if defined(VMCMS) || defined (MVSXA)
          prettycolumn += 2 + strlen(s) ;
+#else
+         prettycolumn += 2 + strlen(realnameoffile) ;
+#endif
       }
       if (linepos != 0)
          (void)putc('\n', bitfile) ;
Index: texlive-bin-2007/build/source/texk/dvipsk/papersiz.c
===================================================================
--- texlive-bin-2007.orig/build/source/texk/dvipsk/papersiz.c	2007-05-07 01:38:12.000000000 +0200
+++ texlive-bin-2007/build/source/texk/dvipsk/papersiz.c	2007-05-07 01:38:37.000000000 +0200
@@ -11,7 +11,7 @@
  *      0 <= num < den <= 20000
  *      0 <= whole
  */
-#include "dvips.h"
+#include "dvips.h" /* The copyright notice in that file is included too! */
 #include "protos.h"
 static long scale P4C(long, whole, long, num, long, den, long, sf)
 {
Index: texlive-bin-2007/build/source/texk/dvipsk/paths.h
===================================================================
--- texlive-bin-2007.orig/build/source/texk/dvipsk/paths.h	2007-05-07 01:38:12.000000000 +0200
+++ texlive-bin-2007/build/source/texk/dvipsk/paths.h	2007-05-07 01:38:37.000000000 +0200
@@ -1,4 +1,4 @@
-/*
+/*   paths.h - public domain.
  *   OUTPATH is where to send the output.  If you want a .ps file to
  *   be created by default, set this to "".  If you want to automatically
  *   invoke a pipe (as in lpr), make the first character an exclamation
Index: texlive-bin-2007/build/source/texk/dvipsk/psfonts.map
===================================================================
--- texlive-bin-2007.orig/build/source/texk/dvipsk/psfonts.map	2007-05-07 01:38:12.000000000 +0200
+++ texlive-bin-2007/build/source/texk/dvipsk/psfonts.map	2007-05-07 01:38:37.000000000 +0200
@@ -1,4 +1,5 @@
 % original psfonts.map -- match TFM filenames to PostScript FontNames.
+% This file is public domain.
 % (If you change or delete `original' on the previous line, dvips won't
 % install its psfonts.map over this file.)
 % 
Index: texlive-bin-2007/build/source/texk/dvipsk/resident.c
===================================================================
--- texlive-bin-2007.orig/build/source/texk/dvipsk/resident.c	2007-05-07 01:38:12.000000000 +0200
+++ texlive-bin-2007/build/source/texk/dvipsk/resident.c	2007-05-07 01:38:37.000000000 +0200
@@ -32,6 +32,8 @@
  *   These are the external variables we use.
  */
 extern char *realnameoffile ;
+extern int prettycolumn ;
+extern int dvips_debug_flag ;
 #ifdef DEBUG
 extern integer debug_flag;
 #endif  /* DEBUG */
@@ -441,6 +443,14 @@
 #else
    if ((deffile=search(d,PSname,READ))!=NULL) {
 #endif
+   if (dvips_debug_flag && !quiet) {
+      if (strlen(realnameoffile) + prettycolumn > STDOUTSIZE) {
+         fprintf(stderr, "\n") ;
+         prettycolumn = 0 ;
+      }
+      (void)fprintf(stderr, "{%s}", realnameoffile);
+      prettycolumn += strlen(realnameoffile) + 2 ;
+   }
 #ifdef DEBUG
      if (dd (D_CONFIG)) {
        fprintf (stderr, "Reading dvips config file `%s':\n", realnameoffile);
@@ -845,9 +855,9 @@
 */
 void getpsinfo P1C(char *, name)
 {
-    FILE *deffile ;
-    register char *p ;
-    char *specinfo, *downloadinfo ;
+   FILE *deffile ;
+   register char *p ;
+   char *specinfo, *downloadinfo ;
    char downbuf[500] ;
    char specbuf[500] ;
    int slen ;
@@ -855,6 +865,14 @@
    if (name == 0)
       name = psmapfile ;
    if ((deffile=search(mappath, name, READ))!=NULL) {
+      if (dvips_debug_flag && !quiet) {
+         if (strlen(realnameoffile) + prettycolumn > STDOUTSIZE) {
+            fprintf(stderr, "\n") ;
+            prettycolumn = 0 ;
+         }
+         (void)fprintf(stderr, "{%s}", realnameoffile);
+         prettycolumn += strlen(realnameoffile) + 2 ;
+      }
       while (fgets(was_inline, INLINE_SIZE, deffile)!=NULL) {
          p = was_inline ;
          if (*p > ' ' && *p != '*' && *p != '#' && *p != ';' && *p != '%') {
Index: texlive-bin-2007/build/source/texk/dvipsk/special.lpro
===================================================================
--- texlive-bin-2007.orig/build/source/texk/dvipsk/special.lpro	2007-05-07 01:38:12.000000000 +0200
+++ texlive-bin-2007/build/source/texk/dvipsk/special.lpro	2007-05-07 01:38:37.000000000 +0200
@@ -1,6 +1,5 @@
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%%     header for the \special command
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% special.lpro - public domain.
+%     header for the \special command
 %   The structure of the PostScript produced by dvips for \special is:
 %         @beginspecial
 %           - any number of @hsize, @hoffset, @hscale, etc., commands
Index: texlive-bin-2007/build/source/texk/dvipsk/squeeze.c
===================================================================
--- texlive-bin-2007.orig/build/source/texk/dvipsk/squeeze.c	2007-05-07 01:38:12.000000000 +0200
+++ texlive-bin-2007/build/source/texk/dvipsk/squeeze.c	2007-05-07 01:38:37.000000000 +0200
@@ -1,7 +1,4 @@
 /*
- *   This software is Copyright 1988 by Radical Eye Software.
- */
-/*
  *   This routine squeezes a PostScript file down to its
  *   minimum.  We parse and then output it.
  */
@@ -14,7 +11,7 @@
 #include <stdio.h>
 #include <stdlib.h>
 #include <string.h>
-#include "dvips.h"
+#include "dvips.h" /* The copyright notice in that file is included too! */
 #endif
 #ifdef fopen
 #undef fopen
Index: texlive-bin-2007/build/source/texk/dvipsk/tex.lpro
===================================================================
--- texlive-bin-2007.orig/build/source/texk/dvipsk/tex.lpro	2007-05-07 01:38:12.000000000 +0200
+++ texlive-bin-2007/build/source/texk/dvipsk/tex.lpro	2007-05-07 01:38:37.000000000 +0200
@@ -1,3 +1,5 @@
+% tex.lpro - public domain.
+% 
 % The following defines procedures assumed and used by program "dvips"
 % and must be downloaded or sent as a header file for all TeX jobs.
 % Originated by Neal Holtz, Carleton University, Ottawa, Canada
Index: texlive-bin-2007/build/source/texk/dvipsk/texc.script
===================================================================
--- texlive-bin-2007.orig/build/source/texk/dvipsk/texc.script	2007-05-07 01:38:12.000000000 +0200
+++ texlive-bin-2007/build/source/texk/dvipsk/texc.script	2007-05-07 01:38:37.000000000 +0200
@@ -1,5 +1,5 @@
 #! /bin/sh
-# A shell script to convert tex.lpro to texc.lpro
+# A shell script to convert tex.lpro to texc.lpro.  Public domain.
 #
 # To use it, say
 #       texc.script tex.lpro texc.lpro
Index: texlive-bin-2007/build/source/texk/dvipsk/texps.lpro
===================================================================
--- texlive-bin-2007.orig/build/source/texk/dvipsk/texps.lpro	2007-05-07 01:38:12.000000000 +0200
+++ texlive-bin-2007/build/source/texk/dvipsk/texps.lpro	2007-05-07 01:38:37.000000000 +0200
@@ -1,5 +1,5 @@
 % Thanks for some changes to:
-%+ This is TEXPS.LPRO as modified by Rob Hutchings 1992Apr02
+%+ This is TEXPS.LPRO as modified by Rob Hutchings 1992Apr02.  Public domain.
 %+ My comments are marked as %+ 
 % PostScript prolog for using resident fonts.
 %+ Provision is made to change the encoding scheme in special instructions. 

texlive-dvipsoverflow.patch:

--- NEW FILE texlive-dvipsoverflow.patch ---
diff -up texlive-2007/texk/dvipsk/hps.c.dvipsoverflow texlive-2007/texk/dvipsk/hps.c
--- texlive-2007/texk/dvipsk/hps.c.dvipsoverflow	2007-11-22 15:44:30.000000000 +0100
+++ texlive-2007/texk/dvipsk/hps.c	2007-11-22 15:46:10.000000000 +0100
@@ -441,19 +441,32 @@ int href_name_match P2C(char *, h, char 
 
 void stamp_hps P1C(Hps_link *, pl)
 {
-  char tmpbuf[200] ;
+  char * tmpbuf;
   if (pl == NULL) {
     error("Null pointer, oh no!") ;
     return ;
-  } else {
-    /* print out the proper pdfm with local page info only 
-     *  target info will be in the target dictionary */
-    (void)sprintf(tmpbuf, 
-		  " (%s) [[%.0f %.0f %.0f %.0f] [%i %i %i [%i %i]] [%.0f %.0f %.0f]] pdfm ", pl->title, pl->rect.llx, pl->rect.lly, pl->rect.urx, pl->rect.ury,
-		  pl->border[0], pl->border[1], pl->border[2], pl->border[3],pl->border[4],
-		  pl->color[0], pl->color[1], pl->color[2]) ;
-    cmdout(tmpbuf) ; 
-  }
+  } 
+  if(pl->title == NULL) {
+    error("Null pointer, oh no!") ;
+    return ;
+  } 
+
+  tmpbuf = (char *) malloc(strlen(pl->title)+200);
+  if(tmpbuf == NULL) {
+    error("out of memory, oh no!") ;
+    return ;
+  } 
+
+  /* print out the proper pdfm with local page info only 
+   *  target info will be in the target dictionary */
+  (void)sprintf(tmpbuf, 
+		" (%s) [[%.0f %.0f %.0f %.0f] [%i %i %i [%i %i]] [%.0f %.0f %.0f]] pdfm ", 
+		pl->title, pl->rect.llx, pl->rect.lly, pl->rect.urx, pl->rect.ury,
+		pl->border[0], pl->border[1], pl->border[2], pl->border[3],pl->border[4],
+		pl->color[0], pl->color[1], pl->color[2]) ;
+  cmdout(tmpbuf) ; 
+  free(tmpbuf);
+  
   
 }
 
@@ -462,18 +475,31 @@ void stamp_hps P1C(Hps_link *, pl)
  */
 void stamp_external P2C(char *, s, Hps_link *, pl) 
 {
-  char tmpbuf[200];
+  char *tmpbuf;
   if (pl == NULL) {
     error("Null pointer, oh no!") ;
     return ;
-  } else {
-    /* print out the proper pdfm with local page info only 
-     *  target info will be in the target dictionary */
-    (void)sprintf(tmpbuf," [[%.0f %.0f %.0f %.0f] [%i %i %i [%i %i]] [%.0f %.0f %.0f]] (%s) pdfm ", pl->rect.llx, pl->rect.lly, pl->rect.urx, pl->rect.ury,
-		  pl->border[0], pl->border[1], pl->border[2], pl->border[3],pl->border[4],
-		  pl->color[0], pl->color[1], pl->color[2], s) ;
-    cmdout(tmpbuf) ;
-  }
+  } 
+
+  if (s == NULL) {
+    error("Null pointer, oh no!") ;
+    return ;
+  } 
+
+  tmpbuf = (char *) malloc(strlen(s) + 200);
+  if(tmpbuf == NULL) {
+    error("out of memory, oh no!") ;
+    return ;
+  } 
+
+  /* print out the proper pdfm with local page info only 
+   *  target info will be in the target dictionary */
+  (void)sprintf(tmpbuf," [[%.0f %.0f %.0f %.0f] [%i %i %i [%i %i]] [%.0f %.0f %.0f]] (%s) pdfm ",
+		pl->rect.llx, pl->rect.lly, pl->rect.urx, pl->rect.ury,
+		pl->border[0], pl->border[1], pl->border[2], pl->border[3],pl->border[4],
+		pl->color[0], pl->color[1], pl->color[2], s) ;
+  cmdout(tmpbuf) ;
+  free(tmpbuf);
 }
 
 void finish_hps P1H(void) {

texlive-fedora_paths.patch:

--- NEW FILE texlive-fedora_paths.patch ---
diff -up texlive/texk/make/paths.mk.fedora_paths texlive/texk/make/paths.mk
--- texlive/texk/make/paths.mk.fedora_paths	2007-08-19 08:46:09.000000000 +0200
+++ texlive/texk/make/paths.mk	2007-08-19 08:55:17.000000000 +0200
@@ -59,7 +59,7 @@ libexecdir = @libexecdir@
 texmf = @texmfmain@
 
 # The directory used by varfonts.
-vartexfonts = /var/tmp/texfonts
+vartexfonts = $(localstatedir)/cache/fonts
 
 # Regular input files.
 texinputdir = $(texmf)/tex
diff -up texlive/texk/kpathsea/texmf.in.fedora_paths texlive/texk/kpathsea/texmf.in
--- texlive/texk/kpathsea/texmf.in.fedora_paths	2007-08-19 08:47:04.000000000 +0200
+++ texlive/texk/kpathsea/texmf.in	2007-08-21 14:16:49.000000000 +0200
@@ -59,12 +59,12 @@
 TEXMFMAIN = @texmf@
 
 % The main distribution tree:
-TEXMFDIST = @texmf at -dist
+TEXMFDIST = @texmf@
 
 % A place for local additions to a "standard" texmf tree.
 % This tree is not used for local configuration maintained by
 % texconfig, it uses TEXMFCONFIG below.
-TEXMFLOCAL = @texmf at -local
+TEXMFLOCAL = /usr/local/share/texmf
 
 % TEXMFSYSVAR, where texconfig-sys stores variable runtime data.
 % With teTeX-3.0 or later, this must be set.
@@ -72,7 +72,7 @@ TEXMFLOCAL = @texmf at -local
 %   TEXMFSYSVAR = $TEXMFMAIN
 % For using a separate tree:
 %   TEXMFSYSVAR = @texmf at -var
-TEXMFSYSVAR = @texmf at -var
+TEXMFSYSVAR = @localstatedir@/lib/texmf
 
 % TEXMFSYSCONFIG, where texconfig-sys stores configuration data.
 % With teTeX-3.0 or later, this must be set.
@@ -80,7 +80,7 @@ TEXMFSYSVAR = @texmf at -var
 %   TEXMFSYSCONFIG = $TEXMFMAIN
 % For using a separate tree:
 %   TEXMFSYSCONFIG = @texmf at -config
-TEXMFSYSCONFIG = @texmf at -config
+TEXMFSYSCONFIG = @sysconfdir@/texmf
 
 % User texmf trees are allowed as follows.
 % This used to be HOMETEXMF.
@@ -111,7 +111,7 @@ TEXMFCONFIG = $HOME/.texmf-config
 %
 % For texconfig to work properly, TEXMFCONFIG and TEXMFVAR should be named
 % explicitly and before all other trees.
-TEXMF = {$TEXMFCONFIG,$TEXMFVAR,$TEXMFHOME,!!$TEXMFSYSCONFIG,!!$TEXMFSYSVAR,!!$TEXMFMAIN,!!$TEXMFLOCAL,!!$TEXMFDIST}
+TEXMF = {$TEXMFCONFIG,$TEXMFVAR,$TEXMFHOME,$TEXMFSYSCONFIG,!!$TEXMFSYSVAR,!!$TEXMFLOCAL,!!$TEXMFMAIN,!!$TEXMFDIST}
 
 % The system trees.  These are the trees that are shared by all the users.
 % If a tree appears in this list, the mktex* scripts will use
@@ -379,7 +379,7 @@ TEXMFSCRIPTS = $TEXMF/scripts//
 %
 % 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 = {$SELFAUTOLOC,$SELFAUTODIR,$SELFAUTOPARENT}{,{/share,}/texmf{-local,}/web2c};@sysconfdir@/texmf;/usr/local/share/texmf/web2c;$TEXMF/web2c;@web2c@
 
 # $progname: kpathsea v. 3.5.3 or later overwrites this at runtime. To
 # avoid empty expansions from binaries linked against an earlier


--- NEW FILE texlive-filter-requires.sh ---
#!/bin/sh
/usr/lib/rpm/perl.req "$@" | grep -v 'perl(\(Tk\|Win32\|only\|path_tre\|just\|Htex\|Pts\)'

texlive-fix_makempx_installation.patch:

--- NEW FILE texlive-fix_makempx_installation.patch ---
64_fix_makempx_installation by Sanjoy Mahajan <sanjoy at mrao.cam.ac.uk>

building with --enable-shared installs the makempx script instead of the
binary build
---
 build/source/texk/web2c/mpware/Makefile.in |    2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Index: texlive-bin-2007/build/source/texk/web2c/mpware/Makefile.in
===================================================================
--- texlive-bin-2007.orig/build/source/texk/web2c/mpware/Makefile.in	2007-05-19 20:04:58.000000000 +0200
+++ texlive-bin-2007/build/source/texk/web2c/mpware/Makefile.in	2007-05-19 20:05:19.000000000 +0200
@@ -49,7 +49,7 @@
 	$(INSTALL_PROGRAM) newer $(bindir)/newer
 	$(INSTALL_LIBTOOL_PROG) dmp $(bindir)
 	$(INSTALL_LIBTOOL_PROG) mpto $(bindir)
-	$(INSTALL_SCRIPT) makempx $(scriptdir)/makempx
+	$(INSTALL_LIBTOOL_PROG) makempx $(bindir)
 install-data:
 
 kpse_include ../make/tkpathsea.mk

texlive-fix_pkfix_invocation.patch:

--- NEW FILE texlive-fix_pkfix_invocation.patch ---
#! /bin/sh /usr/share/dpatch/dpatch-run
## 11_fix_pkfix_invocation.dpatch  <preining at logic.at>
##
## All lines beginning with `## DP:' are a description of the patch.
## DP: Fix invocation of pkfix to get rid of magic

@DPATCH@
 build/source/texk/texlive/pkfix |    5 +----
 1 file changed, 1 insertion(+), 4 deletions(-)

Index: texlive-bin-2006.svn3816/build/source/texk/texlive/pkfix
===================================================================
--- texlive-bin-2006.svn3816.orig/build/source/texk/texlive/pkfix	2006-01-17 22:41:51.000000000 +0100
+++ texlive-bin-2006.svn3816/build/source/texk/texlive/pkfix	2007-01-26 03:56:42.000000000 +0100
@@ -1,7 +1,4 @@
-eval '(exit $?0)' && eval 'exec perl -S $0 ${1+"$@"}' && eval 'exec perl -S $0 $argv:q'
-  if 0;
-use strict;
-$^W=1; # turn warning on
+#!/usr/bin/perl -w
 #
 # pkfix.pl
 #

texlive-fmtutil_keep_failedlog.patch:

--- NEW FILE texlive-fmtutil_keep_failedlog.patch ---
---
 build/source/texk/tetex/fmtutil |    7 ++++---
 1 file changed, 4 insertions(+), 3 deletions(-)

Index: texlive-bin-2007/build/source/texk/tetex/fmtutil
===================================================================
--- texlive-bin-2007.orig/build/source/texk/tetex/fmtutil	2007-04-13 14:04:31.000000000 +0200
+++ texlive-bin-2007/build/source/texk/tetex/fmtutil	2007-04-13 14:09:48.000000000 +0200
@@ -696,9 +696,7 @@
   if test -f $fmtfile; then
     grep '^! ' $format.log >/dev/null 2>&1 &&
       log_failure "\`$engine -ini $tcxflag $jobswitch $prgswitch $texargs' possibly failed."
-    rm -f "$fulldestdir/$format.log"
-    # We don't want user-interaction for the following "mv" commands:
-    mv "$format.log" "$fulldestdir/$format.log" </dev/null
+    # We don't want user-interaction for the following "mv" command:
     if mv "$fmtfile" "$fulldestdir/$fmtfile" </dev/null; then
       verboseMsg "$progname: $fulldestdir/$fmtfile installed."
       #
@@ -710,6 +708,9 @@
   else
     log_failure "\`$engine -ini $tcxflag $jobswitch $prgswitch $texargs' failed"
   fi
+  rm -f "$fulldestdir/$format.log"
+  # We don't want user-interaction for the following "mv" command:
+  mv "$format.log" "$fulldestdir/$format.log" </dev/null
 }
 
 ###############################################################################


--- NEW FILE texlive-generate-tarball.sh ---
#!/bin/sh

mkdir texlive-source-free
cd texlive-source-free
tar -xjvf ../source.tar.bz2
for file in texk/texlive/nts.pl \
 texk/dvipsk/contrib/bbfig/bb.ps \
 texk/dvipsk/contrib/pspic/pspic.sty \
 texk/dvipsk/contrib/psfntmac/ps_lfonts.tex \
 texk/dvipsk/contrib/psfntmac/ps_plain.tex \
 texk/dvpisk/contrib/timesmat.sty \
 texk/dvpisk/contrib/MakeTeXPK.pl\
 ; do
   rm $file
done

tar -cjvf ../source-free.tar.bz2 .
cd ..
rm -rf texlive-source-free


texlive-maketexmf.patch:

--- NEW FILE texlive-maketexmf.patch ---
#! /bin/sh /usr/share/dpatch/dpatch-run
## 41_maketexmf.dpatch
##
## All lines beginning with `## DP:' are a description of the patch.
## DP: fix for mktexmf script from perforce depot

@DPATCH@
 build/source/texk/kpathsea/mktexmf |   19 +++++++++++--------
 1 file changed, 11 insertions(+), 8 deletions(-)

Index: texlive-bin-2006.svn3816/build/source/texk/kpathsea/mktexmf
===================================================================
--- texlive-bin-2006.svn3816.orig/build/source/texk/kpathsea/mktexmf	2006-01-17 22:41:51.000000000 +0100
+++ texlive-bin-2006.svn3816/build/source/texk/kpathsea/mktexmf	2007-01-26 04:01:50.000000000 +0100
@@ -36,17 +36,20 @@
   rootfile=$sauterroot
   rootname=b-$rootname
 else
-  case $rootname in
+  case $name in
     # csso12[0-5][0-9] from CJK package; unsupported by mktexmf
     csso12[0-5][0-9])
-       rootfile=;;
-    cs*|lcsss*|icscsc*|icstt*|ilcsss*)
-       rootfile=`kpsewhich cscode.mf`;;
-    wn[bcdfirstuv]*|rx[bcdfiorstuvx][bcfhilmostx]|l[abcdhl][bcdfiorstuvx]*)
-       lhprefix=`echo "$name" | sed 's/^\(..\).*/\1/'`
-       rootfile=`kpsewhich ${lhprefix}codes.mf 2>/dev/null`;;
+      rootfile=;;
     *)
-       rootfile=`kpsewhich $rootname.mf 2>/dev/null`;;
+      case $rootname in
+        cs*|lcsss*|icscsc*|icstt*|ilcsss*)
+          rootfile=`kpsewhich cscode.mf`;;
+        wn[bcdfirstuv]*|rx[bcdfiorstuvx][bcfhilmostx]|l[abcdhl][bcdfiorstuvx]*)
+          lhprefix=`echo "$name" | sed 's/^\(..\).*/\1/'`
+          rootfile=`kpsewhich ${lhprefix}codes.mf 2>/dev/null`;;
+        *)
+          rootfile=`kpsewhich $rootname.mf 2>/dev/null`;;
+      esac;;
   esac
 fi
 { test -z "$rootfile" || test ! -f "$rootfile"; } && exit 1

texlive-mktexlsr_fixes.patch:

--- NEW FILE texlive-mktexlsr_fixes.patch ---
## 10_mktexlsr_fixes by  <frank at debian.org> etc etc
##
## DP: Fixes wrong paths in various scripts to make lintian shut up.
## DP: Fix creation of ls-R in root's homedir
## DP: Also add a note to the man page of mktexlsr about the above fix

 build/source/texk/kpathsea/mktexlsr |   24 ++++++++++++------------
 texmf/doc/man/man1/mktexlsr.1       |    9 +++++++++
 2 files changed, 21 insertions(+), 12 deletions(-)

Index: texlive-bin-2006.svn3816/build/source/texk/kpathsea/mktexlsr
===================================================================
--- texlive-bin-2006.svn3816.orig/build/source/texk/kpathsea/mktexlsr	2006-12-25 19:44:43.000000000 +0100
+++ texlive-bin-2006.svn3816/build/source/texk/kpathsea/mktexlsr	2007-01-26 03:55:05.000000000 +0100
@@ -82,6 +82,9 @@
 '
   set x `kpsewhich --show-path=ls-R | tr : '
 ' | sort | uniq`; shift
+  if test "`id -u`" -eq 0; then
+    NOROOTHOME=true
+  fi
   IFS=$OIFS
 }
 
@@ -89,6 +92,10 @@
   # Prepend cwd if the directory was relative.
   case "$TEXMFLS_R" in
   "") continue ;;  # Strictly speaking, it is an error if this case is taken.
+  $HOME/*) if test -n "$NOROOTHOME"; then
+  		tty -s && echo "$progname: Skipping $TEXMFLS_R" >&2
+		continue
+	   fi ;;
   /* | [A-z]:/*) ;;
   *)  TEXMFLS_R="`pwd`/$TEXMFLS_R"
   esac
@@ -112,9 +119,9 @@
   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 ! -f "$db_file"; then
+    test -w "$db_dir" || { echo "$progname: $db_dir: directory not writable. Skipping..." >&2; continue; }
     cp /dev/null "$db_file"
     # Use same permissions as parent directory, minus x,s, or t bits.
     chmod `kpsestat -xst "$db_dir"` "$db_file"
@@ -128,11 +135,8 @@
   # Skip if we cannot write the file:
   kpseaccess -w "$db_file" || { echo "$progname: $db_file: no write permission. Skipping..." >&2; continue; }
 
-  db_dir_tmp="$db_dir/lsR$$.tmp"
-  (umask 077 && mkdir "$db_dir_tmp" ) \
-    || { echo "$progname: could not create directory '$db_dir_tmp'. Skipping..." >&2; continue; }
-  db_file_tmp="$db_dir_tmp/lsR$$.tmp"
-  rm -f "$db_file_tmp"
+  db_file_tmp=`mktemp -t ls-R.XXXXXXXXXX` \
+    || { echo "$progname: could not create temporary file for '$db_file'. Skipping..." >&2; continue; }
 
   $verbose && echo "$progname: Updating $db_file... " >&2
   echo "$ls_R_magic" >"$db_file_tmp"
@@ -152,12 +156,8 @@
    | sed -e '/\.svn.*:$/,/^$/d' \
    >>"$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"
-  rm -rf "$db_dir_tmp"
+  cat "$db_file_tmp" > "$db_file"
+  rm -f "$db_file_tmp"
 done
 $verbose && echo "$progname: Done." >&2
 exit 0
Index: texlive-bin-2006.svn3816/texmf/doc/man/man1/mktexlsr.1
===================================================================
--- texlive-bin-2006.svn3816.orig/build/source/texk/kpathsea/mktexlsr.man 2007-01-14 19:01:06.000000000 +0100
+++ texlive-bin-2006.svn3816/build/source/texk/kpathsea/mktexlsr.man      2007-01-26 03:55:05.000000000 +0100
@@ -44,3 +44,12 @@
 .B --version
 .rb
 Print version information and exit.
+.\"=====================================================================
+.SH NOTES
+When called by root with no arguments, \fBmktexlsr\fP in Debian ignores
+TEXMF trees under \fI$HOME\fP. This is to avoid creating undesirable files
+such as \fI/root/texmf/ls-R\fP when doing usual maintainance (it is generally
+a bad idea to work with TeX as root, therefore having a file such as
+\fI/root/texmf/ls-R\fP in the first place is rather pointless). If you really
+want to update the ls-R databases for such TEXMF trees, simply list them
+explicitely on the command-line.


texlive-more_paths.patch:

--- NEW FILE texlive-more_paths.patch ---
diff -up texlive/texk/make/makevars.mk.more_paths texlive/texk/make/makevars.mk
--- texlive/texk/make/makevars.mk.more_paths	2007-08-19 07:38:56.000000000 +0200
+++ texlive/texk/make/makevars.mk	2007-08-19 07:45:26.000000000 +0200
@@ -5,6 +5,8 @@ makevars = prefix=$(prefix) exec_prefix=
   bindir=$(bindir) scriptdir=$(scriptdir) libdir=$(libdir) \
   datadir=$(datadir) infodir=$(infodir) includedir=$(includedir) \
   mandir=$(mandir) manext=$(manext) man1dir=$(man1dir) \
+  sysconfdir=$(sysconfdir) localstatedir=$(localstatedir) \
+  libexecdir=$(libexecdir) \
   texmf=$(texmf) web2cdir=$(web2cdir) vartexfonts=$(vartexfonts)\
   texinputdir=$(texinputdir) mfinputdir=$(mfinputdir) mpinputdir=$(mpinputdir)\
   fontdir=$(fontdir) fmtdir=$(fmtdir) basedir=$(basedir) memdir=$(memdir) \
diff -up texlive/texk/make/paths.mk.more_paths texlive/texk/make/paths.mk
--- texlive/texk/make/paths.mk.more_paths	2007-08-19 07:39:12.000000000 +0200
+++ texlive/texk/make/paths.mk	2007-08-19 08:54:35.000000000 +0200
@@ -35,6 +35,18 @@ manext = 1
 mandir = @mandir@
 man1dir = $(mandir)/man$(manext)
 
+# modifiable single-machine data.
+
+localstatedir = @localstatedir@
+
+# read-only single-machine data (configuration).
+
+sysconfdir = @sysconfdir@
+
+# executables that other programs run.
+
+libexecdir = @libexecdir@
+
 # TeX system-specific directories. Not all of the following are relevant
 # for all programs, but it seems cleaner to collect everything in one place.
 

texlive-pdftex.patch:

--- NEW FILE texlive-pdftex.patch ---
--- texlive-2007/texk/web2c/pdftexdir/ptexlib.h.orig	2007-06-21 20:07:37.746531903 -0400
+++ texlive-2007/texk/web2c/pdftexdir/ptexlib.h	2007-06-21 20:05:40.014606804 -0400
@@ -38,7 +38,9 @@
 /* avl */
 #  include "avlstuff.h"
 
+#ifndef __linux__
 #  include "openbsd-compat.h"
+#endif
 
 /* pdftexlib type declarations */
 typedef struct {
--- texlive-2007/texk/web2c/pdftexdir/epdf.h.orig	2007-06-21 22:27:08.039209770 -0400
+++ texlive-2007/texk/web2c/pdftexdir/epdf.h	2007-06-21 22:27:32.643343920 -0400
@@ -44,7 +44,9 @@
 
 #include <web2c/pdftexdir/ptexmac.h>
 
+#ifndef __linux__
 #include "openbsd-compat.h"
+#endif
 
 /* #-define pdfbufsize      pdfbufmax */
 
--- texlive-2007/texk/web2c/pdftexdir/depend.mk.pdftex	2006-12-26 18:37:34.000000000 -0500
+++ texlive-2007/texk/web2c/pdftexdir/depend.mk	2007-06-22 00:17:35.157351368 -0400
@@ -7,15 +7,13 @@
  ptexmac.h
 utils.o: utils.c ptexlib.h ../pdftexd.h ../texmfmp.h ../cpascal.h \
  ../config.h ../help.h ../texmfmem.h ../pdftexcoerce.h ptexmac.h \
- ../../../libs/zlib/zlib.h ../../../libs/zlib/zconf.h \
- ../../../libs/md5/md5.h pdftexextra.h \
- ../../../libs/obsdcompat/openbsd-compat.h
+pdftexextra.h
 vfpacket.o: vfpacket.c ptexlib.h ../pdftexd.h ../texmfmp.h \
  ../cpascal.h ../config.h ../help.h ../texmfmem.h ../pdftexcoerce.h \
  ptexmac.h
 pkin.o: pkin.c ptexlib.h ../pdftexd.h ../texmfmp.h ../cpascal.h \
  ../config.h ../help.h ../texmfmem.h ../pdftexcoerce.h ptexmac.h
-writefont.o: writefont.c ../../../libs/xpdf/goo/gmem.h ptexlib.h \
+writefont.o: writefont.c ptexlib.h \
  ../pdftexd.h ../texmfmp.h ../cpascal.h ../config.h ../help.h \
  ../texmfmem.h ../pdftexcoerce.h ptexmac.h
 writet1.o: writet1.c ptexlib.h ../pdftexd.h ../texmfmp.h ../cpascal.h \
@@ -24,7 +22,7 @@
  ../config.h ../help.h ../texmfmem.h ../pdftexcoerce.h ptexmac.h
 writezip.o: writezip.c ptexlib.h ../pdftexd.h ../texmfmp.h \
  ../cpascal.h ../config.h ../help.h ../texmfmem.h ../pdftexcoerce.h \
- ptexmac.h ../../../libs/zlib/zlib.h ../../../libs/zlib/zconf.h
+ ptexmac.h
 writeenc.o: writeenc.c ptexlib.h ../pdftexd.h ../texmfmp.h \
  ../cpascal.h ../config.h ../help.h ../texmfmem.h ../pdftexcoerce.h \
  ptexmac.h
@@ -40,16 +38,7 @@
 writeimg.o: writeimg.c ptexlib.h ../pdftexd.h ../texmfmp.h \
  ../cpascal.h ../config.h ../help.h ../texmfmem.h ../pdftexcoerce.h \
  ptexmac.h image.h
-pdftoepdf.o: pdftoepdf.cc ../../../libs/xpdf/xpdf/Object.h \
- ../../../libs/xpdf/goo/gmem.h ../../../libs/xpdf/xpdf/Array.h \
- ../../../libs/xpdf/xpdf/Dict.h ../../../libs/xpdf/xpdf/Stream.h \
- ../../../libs/xpdf/xpdf/XRef.h ../../../libs/xpdf/xpdf/Catalog.h \
- ../../../libs/xpdf/xpdf/Page.h ../../../libs/xpdf/xpdf/GfxFont.h \
- ../../../libs/xpdf/xpdf/Error.h epdf.h
+pdftoepdf.o: pdftoepdf.cc \
+ epdf.h
 ttf2afm.o: ttf2afm.c writettf.h macnames.c
-pdftosrc.o: pdftosrc.cc ../../../libs/xpdf/xpdf/Object.h \
- ../../../libs/xpdf/xpdf/Array.h ../../../libs/xpdf/xpdf/Dict.h \
- ../../../libs/xpdf/xpdf/Stream.h ../../../libs/xpdf/xpdf/XRef.h \
- ../../../libs/xpdf/xpdf/Catalog.h ../../../libs/xpdf/xpdf/Page.h \
- ../../../libs/xpdf/xpdf/PDFDoc.h ../../../libs/xpdf/xpdf/Link.h \
- ../../../libs/xpdf/xpdf/Error.h ../../../libs/xpdf/xpdf/config.h
+pdftosrc.o: pdftosrc.cc
--- texlive-2007/texk/web2c/pdftexdir/utils.c.orig	2007-06-22 00:33:15.216284121 -0400
+++ texlive-2007/texk/web2c/pdftexdir/utils.c	2007-06-22 00:33:32.948057443 -0400
@@ -20,7 +20,9 @@
 $Id: //depot/Build/source.development/TeX/texk/web2c/pdftexdir/utils.c#24 $
 */
 
+#ifndef __linux__
 #include "openbsd-compat.h"
+#endif
 #ifdef HAVE_ASPRINTF            /* asprintf is not defined in openbsd-compat.h, but in stdio.h */
 #  include <stdio.h>
 #endif

texlive-poppler.patch:

--- NEW FILE texlive-poppler.patch ---
diff -up texlive-2007/texk/web2c/pdftexdir/pdftex.mk.poppler texlive-2007/texk/web2c/pdftexdir/pdftex.mk
--- texlive-2007/texk/web2c/pdftexdir/pdftex.mk.poppler	2006-12-27 00:37:34.000000000 +0100
+++ texlive-2007/texk/web2c/pdftexdir/pdftex.mk	2007-11-28 11:53:15.000000000 +0100
@@ -2,6 +2,9 @@
 # This fragment contains the parts of the makefile that are most likely to
 # differ between releases of pdfeTeX.
 
+# use libpoppler instead of included xpdf code
+ADDLDFLAGS = -lpoppler
+
 # We build pdftex
 pdftex = @PETEX@ pdftex
 pdftexdir = pdftexdir
@@ -29,7 +32,7 @@ pdftex_o = pdftexini.o pdftex0.o pdftex1
 
 # Making pdftex
 pdftex: pdftexd.h $(pdftex_o) $(pdftexextra_o) $(pdftexlibsdep)
-	@CXXHACKLINK@ $(pdftex_o) $(pdftexextra_o) $(pdftexlibs) $(socketlibs) @CXXHACKLDLIBS@ @CXXLDEXTRA@
+	@CXXHACKLINK@ $(pdftex_o) $(pdftexextra_o) $(pdftexlibs) $(socketlibs) @CXXHACKLDLIBS@ @CXXLDEXTRA@ $(ADDLDFLAGS)
 
 # C file dependencies.
 $(pdftex_c) pdftexcoerce.h pdftexd.h: pdftex.p $(web2c_texmf) $(srcdir)/$(pdftexdir)/pdftex.defines $(srcdir)/$(pdftexdir)/pdftex.h
@@ -156,7 +159,7 @@ ttf2afm-clean:
 pdftosrc = pdftosrc
 
 pdftosrc: $(pdftexdir)/pdftosrc.o $(LIBXPDFDEP)
-	@CXXHACKLINK@ $(pdftexdir)/pdftosrc.o $(LDLIBXPDF) -lm @CXXLDEXTRA@
+	@CXXHACKLINK@ $(pdftexdir)/pdftosrc.o $(LDLIBXPDF) -lm @CXXLDEXTRA@  $(ADDLDFLAGS)
 $(pdftexdir)/pdftosrc.o:$(srcdir)/$(pdftexdir)/pdftosrc.cc
 	cd $(pdftexdir) && $(MAKE) pdftosrc.o
 check: pdftosrc-check
diff -up texlive-2007/texk/web2c/pdftexdir/pdftoepdf.cc.poppler texlive-2007/texk/web2c/pdftexdir/pdftoepdf.cc
--- texlive-2007/texk/web2c/pdftexdir/pdftoepdf.cc.poppler	2006-12-27 00:37:34.000000000 +0100
+++ texlive-2007/texk/web2c/pdftexdir/pdftoepdf.cc	2007-11-28 11:53:15.000000000 +0100
@@ -26,25 +26,24 @@ $Id: pdftoepdf.cc,v 1.9 2006/09/01 18:06
 #include <stdio.h>
 #include <string.h>
 #include <ctype.h>
-#include <aconf.h>
-#include <GString.h>
-#include <gmem.h>
-#include <gfile.h>
-#include <config.h>
 #include <assert.h>
-#include "Object.h"
-#include "Stream.h"
-#include "Array.h"
-#include "Dict.h"
-#include "XRef.h"
-#include "Catalog.h"
-#include "Link.h"
-#include "Page.h"
-#include "GfxFont.h"
-#include "PDFDoc.h"
-#include "GlobalParams.h"
-#include "Error.h"
-
+#include <dirent.h>
+#include <poppler/poppler-config.h>
+#include <poppler/goo/GooString.h>
+#include <poppler/goo/gmem.h>
+#include <poppler/goo/gfile.h>
+#include "poppler/Object.h"
+#include "poppler/Stream.h"
+#include "poppler/Array.h"
+#include "poppler/Dict.h"
+#include "poppler/XRef.h"
+#include "poppler/Link.h"
+#include "poppler/Catalog.h"
+#include "poppler/Page.h"
+#include "poppler/GfxFont.h"
+#include "poppler/PDFDoc.h"
+#include "poppler/GlobalParams.h"
+#include "poppler/Error.h"
 #include "epdf.h"
 
 // This file is mostly C and not very much C++; it's just used to interface
@@ -169,7 +168,7 @@ static PdfDocument *find_add_document(ch
     fprintf(stderr, "\npdfTeX Debug: Creating %s (%d)\n", p->file_name,
             p->occurences);
 #endif
-    GString *docName = new GString(p->file_name);
+    GooString *docName = new GooString(p->file_name);
     p->doc = new PDFDoc(docName);       // takes ownership of docName
     if (!p->doc->isOk() || !p->doc->okToPrint()) {
         pdftex_fail("xpdf: reading PDF image failed");
@@ -511,7 +510,7 @@ static void copyObject(Object * obj)
     int i, l, c;
     Ref ref;
     char *p;
-    GString *s;
+    GooString *s;
     if (obj->isBool()) {
         pdf_printf("%s", obj->getBool()? "true" : "false");
     } else if (obj->isInt()) {
@@ -703,7 +702,7 @@ read_pdf_info(char *image_name, char *pa
     epdf_num_pages = pdf_doc->doc->getCatalog()->getNumPages();
     if (page_name) {
         // get page by name
-        GString name(page_name);
+        GooString name(page_name);
         LinkDest *link = pdf_doc->doc->findDest(&name);
         if (link == 0 || !link->isOk())
             pdftex_fail("PDF inclusion: invalid destination <%s>", page_name);
diff -up texlive-2007/texk/web2c/pdftexdir/pdftexextra.in.poppler texlive-2007/texk/web2c/pdftexdir/pdftexextra.in
--- texlive-2007/texk/web2c/pdftexdir/pdftexextra.in.poppler	2006-12-27 00:37:34.000000000 +0100
+++ texlive-2007/texk/web2c/pdftexdir/pdftexextra.in	2007-11-28 11:53:15.000000000 +0100
@@ -26,7 +26,7 @@ $Id: pdftexextra.in,v 1.4 2004/08/26 18:
    (generated from ../lib/texmfmp.c).
 */
 
-#define BANNER "This is pdfTeX, Version 3.141592-PDFTEX-VERSION-ETEX-VERSION"
+#define BANNER "This is pdfTeX using libpoppler, Version 3.141592-PDFTEX-VERSION-ETEX-VERSION"
 #define COPYRIGHT_HOLDER "Peter Breitenlohner (eTeX)/Han The Thanh (pdfTeX)"
 #define AUTHOR NULL
 #define PROGRAM_HELP PDFTEXHELP
diff -up texlive-2007/texk/web2c/pdftexdir/pdftosrc.cc.poppler texlive-2007/texk/web2c/pdftexdir/pdftosrc.cc
--- texlive-2007/texk/web2c/pdftexdir/pdftosrc.cc.poppler	2006-12-27 00:37:34.000000000 +0100
+++ texlive-2007/texk/web2c/pdftexdir/pdftosrc.cc	2007-11-28 12:03:48.000000000 +0100
@@ -25,22 +25,23 @@ $Id: //depot/Build/source.development/Te
 #include <stdio.h>
 #include <string.h>
 #include <ctype.h>
-#include <aconf.h>
 #include <assert.h>
-#include <GString.h>
-#include <gmem.h>
-#include <gfile.h>
-#include "Object.h"
-#include "Stream.h"
-#include "Array.h"
-#include "Dict.h"
-#include "XRef.h"
-#include "Catalog.h"
-#include "Page.h"
-#include "GfxFont.h"
-#include "PDFDoc.h"
-#include "GlobalParams.h"
-#include "Error.h"
+
+#include <dirent.h>
+#include <poppler/goo/GooString.h>
+#include <poppler/goo/gmem.h>
+#include <poppler/goo/gfile.h>
+#include <poppler/Object.h>
+#include <poppler/Stream.h>
+#include <poppler/Array.h>
+#include <poppler/Dict.h>
+#include <poppler/XRef.h>
+#include <poppler/Catalog.h>
+#include <poppler/Page.h>
+#include <poppler/GfxFont.h>
+#include <poppler/PDFDoc.h>
+#include <poppler/GlobalParams.h>
+#include <poppler/Error.h>
 
 static XRef *xref = 0;
 
@@ -48,7 +49,7 @@ int main(int argc, char *argv[])
 {
     char *p, buf[1024];
     PDFDoc *doc;
-    GString *fileName;
+    GooString *fileName;
     Stream *s;
     Object srcStream, srcName, catalogDict;
     FILE *outfile;
@@ -62,7 +63,7 @@ int main(int argc, char *argv[])
                 "Usage: pdftosrc <PDF-file> [<stream-object-number>]\n");
         exit(1);
     }
-    fileName = new GString(argv[1]);
+    fileName = new GooString(argv[1]);
     globalParams = new GlobalParams();
     doc = new PDFDoc(fileName);
     if (!doc->isOk()) {
diff -up texlive-2007/texk/web2c/pdftexdir/utils.c.poppler texlive-2007/texk/web2c/pdftexdir/utils.c
--- texlive-2007/texk/web2c/pdftexdir/utils.c.poppler	2007-01-01 18:20:03.000000000 +0100
+++ texlive-2007/texk/web2c/pdftexdir/utils.c	2007-11-28 11:53:15.000000000 +0100
@@ -37,7 +39,7 @@ $Id: //depot/Build/source.development/Te
 #include "zlib.h"
 #include "ptexlib.h"
 #include "png.h"
-#include "xpdf/config.h"        /* just to get the xpdf version */
+#include "poppler/poppler-config.h"        /* just to get the xpdf version */
 
 #define check_nprintf(size_get, size_want) \
     if ((unsigned)(size_get) >= (unsigned)(size_want)) \
@@ -1261,7 +1263,7 @@ void initversionstring(char **versions)
     (void) asprintf(versions,
                     "Compiled with libpng %s; using libpng %s\n"
                     "Compiled with zlib %s; using zlib %s\n"
-                    "Compiled with xpdf version %s\n",
+                    "Compiled with libpoppler version %s\n",
                     PNG_LIBPNG_VER_STRING, png_libpng_ver,
                     ZLIB_VERSION, zlib_version, xpdfVersion);
 }
diff -up texlive-2007/texk/web2c/xetexdir/pdfimage.cpp.poppler texlive-2007/texk/web2c/xetexdir/pdfimage.cpp
--- texlive-2007/texk/web2c/xetexdir/pdfimage.cpp.poppler	2006-12-09 11:29:12.000000000 +0100
+++ texlive-2007/texk/web2c/xetexdir/pdfimage.cpp	2007-11-28 11:53:15.000000000 +0100
@@ -11,10 +11,24 @@
 
 #include "pdfimage.h"
 
-#include "PDFDoc.h"
-#include "Catalog.h"
-#include "Page.h"
-#include "GString.h"
+#include <dirent.h>
+#include <poppler/poppler-config.h>
+#include <poppler/goo/GooString.h>
+#include <poppler/goo/gmem.h>
+#include <poppler/goo/gfile.h>
+#include "poppler/Object.h"
+#include "poppler/Stream.h"
+#include "poppler/Array.h"
+#include "poppler/Dict.h"
+#include "poppler/XRef.h"
+#include "poppler/Link.h"
+#include "poppler/Catalog.h"
+#include "poppler/Page.h"
+#include "poppler/GfxFont.h"
+#include "poppler/PDFDoc.h"
+#include "poppler/GlobalParams.h"
+#include "poppler/Error.h"
+
 
 #include "XeTeX_ext.h"
 
@@ -28,7 +42,7 @@ my_fmin(double x, double y)
 int
 pdf_get_rect(char* filename, int page_num, int pdf_box, realrect* box)
 {
-	GString*	name = new GString(filename);
+	GooString*	name = new GooString(filename);
 	PDFDoc*		doc = new PDFDoc(name);
 	
 	if (!doc) {
diff -up texlive-2007/texk/web2c/xetexdir/XeTeX_ext.c.poppler texlive-2007/texk/web2c/xetexdir/XeTeX_ext.c
--- texlive-2007/texk/web2c/xetexdir/XeTeX_ext.c.poppler	2007-01-15 14:04:36.000000000 +0100
+++ texlive-2007/texk/web2c/xetexdir/XeTeX_ext.c	2007-11-28 11:53:15.000000000 +0100
@@ -33,7 +33,7 @@ authorization from SIL International.
  */
 
 #ifdef XETEX_OTHER
-#include "xpdf/config.h"
+#include "poppler/poppler-config.h"
 #include "png.h"
 #endif
 
@@ -194,7 +194,7 @@ void initversionstring(char **versions)
 #else
 		"Compiled with fontconfig version %d.%d.%d; using %d.%d.%d\n"
 		"Compiled with libpng version %s; using %s\n"
-		"Compiled with xpdf version %s\n"
+		"Compiled with libpoppler version %s\n"
 #endif
 		;
 
diff -up texlive-2007/texk/web2c/xetexdir/xetex.mk.poppler texlive-2007/texk/web2c/xetexdir/xetex.mk
--- texlive-2007/texk/web2c/xetexdir/xetex.mk.poppler	2007-11-28 11:53:15.000000000 +0100
+++ texlive-2007/texk/web2c/xetexdir/xetex.mk	2007-11-28 11:53:15.000000000 +0100
@@ -4,6 +4,10 @@
 
 Makefile: $(srcdir)/xetexdir/xetex.mk
 
+# use libpoppler instead of included xpdf code
+ADDLDFLAGS = -lpoppler
+
+
 # We build xetex unless configure decides to skip it
 xetex = @XETEX@ xetex
 
@@ -29,7 +33,7 @@ xetex = @XETEX@ xetex
 
 @XETEX_GENERIC@ XETEX_DEFINES = -DXETEX_OTHER
 
- at XETEX_GENERIC@ EXTRALIBS = @LDLIBXPDF@ @LDLIBPNG@ @LDFONTCONFIG@
+ at XETEX_GENERIC@ EXTRALIBS = @LDLIBXPDF@ @LDLIBPNG@ @LDFONTCONFIG@ $(ADDLDFLAGS)
 
 @XETEX_GENERIC@ EXTRADEPS = @LIBXPDFDEP@ @LIBPNGDEP@
 
@@ -144,7 +148,7 @@ pngimage.o: $(srcdir)/xetexdir/pngimage.
 	$(compile) $(ALL_CFLAGS) $(LIBPNGCPPFLAGS) $(ZLIBCPPFLAGS) -c $< -o $@
 
 pdfimage.o: $(srcdir)/xetexdir/pdfimage.cpp $(srcdir)/xetexdir/pdfimage.h
-	$(CXX) $(ALL_CFLAGS) $(LIBXPDFCPPFLAGS) -c $< -o $@
+	$(CXX) $(ALL_CFLAGS) $(LIBXPDFCPPFLAGS) -I/usr/include/poppler -c $< -o $@
 
 XeTeX_pic.o: $(srcdir)/xetexdir/XeTeX_pic.c $(srcdir)/xetexdir/XeTeX_ext.h $(XeTeXImageHdrs)
 	$(compile) $(TECKITFLAGS) $(ALL_CFLAGS) $(XETEX_DEFINES) -c $< -o $@
@@ -187,7 +191,7 @@ XeTeXOTMath.o: $(srcdir)/xetexdir/XeTeXO
 
 # special rules for files that need the TECkit headers as well
 XeTeX_ext.o: $(srcdir)/xetexdir/XeTeX_ext.c xetexd.h
-	$(compile) $(ICUCFLAGS) $(FTFLAGS) $(TECKITFLAGS) $(LIBPNGCPPFLAGS) $(LIBXPDFCPPFLAGS) $(ZLIBCPPFLAGS) $(ALL_CFLAGS) $(XETEX_DEFINES) -c $< -o $@
+	$(compile) $(ICUCFLAGS) $(FTFLAGS) $(TECKITFLAGS) $(LIBPNGCPPFLAGS) $(LIBXPDFCPPFLAGS) $(ZLIBCPPFLAGS) $(ALL_CFLAGS) $(XETEX_DEFINES) -I/usr/include/poppler -c $< -o $@
 XeTeX_mac.o: $(srcdir)/xetexdir/XeTeX_mac.c xetexd.h
 	$(compile) $(ICUCFLAGS) $(TECKITFLAGS) $(ALL_CFLAGS) $(XETEX_DEFINES) -c $< -o $@
 
diff -up texlive-2007/configure.poppler texlive-2007/configure
--- texlive-2007/configure.poppler	2007-01-09 15:16:26.000000000 +0100
+++ texlive-2007/configure	2007-11-28 11:53:15.000000000 +0100
@@ -3442,9 +3442,9 @@ export needs_zlib
 
 # we need libxpdf for pdf[ex]tex, xetex
 test ! -d $srcdir/$LIBXPDFDIR && : ${needs_libxpdf=no}
-test "$with_pdftex"  != no    && : ${needs_libxpdf=yes}
-test "$with_pdfetex" != no    && : ${needs_libxpdf=yes}
-test "$with_xetex"   != no    && : ${needs_libxpdf=yes}
+test "$with_pdftex"  != no    && : ${needs_libxpdf=no}
+test "$with_pdfetex" != no    && : ${needs_libxpdf=no}
+test "$with_xetex"   != no    && : ${needs_libxpdf=no}
 : ${needs_libxpdf=no}
 export needs_libxpdf
 
diff -up texlive-2007/configure.in.poppler texlive-2007/configure.in
--- texlive-2007/configure.in.poppler	2007-01-09 02:17:11.000000000 +0100
+++ texlive-2007/configure.in	2007-11-28 11:53:15.000000000 +0100
@@ -157,9 +157,9 @@ export needs_zlib
 
 # we need libxpdf for pdf[ex]tex, xetex
 test ! -d $srcdir/$LIBXPDFDIR && : ${needs_libxpdf=no}
-test "$with_pdftex"  != no    && : ${needs_libxpdf=yes}
-test "$with_pdfetex" != no    && : ${needs_libxpdf=yes}
-test "$with_xetex"   != no    && : ${needs_libxpdf=yes}
+test "$with_pdftex"  != no    && : ${needs_libxpdf=no}
+test "$with_pdfetex" != no    && : ${needs_libxpdf=no}
+test "$with_xetex"   != no    && : ${needs_libxpdf=no}
 : ${needs_libxpdf=no}
 export needs_libxpdf
 
@@ -207,7 +207,7 @@ dnl We cannot use variables (e.g. $LIBPN
 sinclude(libs/libpng/libpng.ac)
 sinclude(libs/zlib/zlib.ac)
 sinclude(libs/ncurses/ncurses.ac)
-sinclude(libs/xpdf/libxpdf.ac)
+#sinclude(libs/xpdf/libxpdf.ac)
 sinclude(libs/t1lib/t1lib.ac)
 sinclude(libs/gd/gd.ac)
 sinclude(libs/freetype/freetype.ac)

texlive-source-CVE-2007-0650.patch:

--- NEW FILE texlive-source-CVE-2007-0650.patch ---
--- texk/makeindexk/mkind.c
+++ texk/makeindexk/mkind.c	2007-02-06 13:43:26.000000000 +0100
@@ -179,7 +179,9 @@ char   *argv[];
 		    argc--;
 		    if (argc <= 0)
 			FATAL("Expected -p <num>\n","");
-		    strcpy(pageno, *++argv);
+		    if (strlen(*++argv) >= sizeof(pageno))
+			FATAL("Page number too high\n","");
+		    strcpy(pageno, *argv);
 		    init_page = TRUE;
 		    if (STREQ(pageno, EVEN)) {
 			log_given = TRUE;
@@ -227,10 +229,10 @@ char   *argv[];
 
 	if (fn_no == 0 && !sty_given)
 	{
-		char tmp[STRING_MAX + 5];
+		char tmp[STRING_MAX];
 		
 		/* base set by last call to check_idx */
-		sprintf (tmp, "%s%s", base, INDEX_STY);
+		snprintf (tmp, sizeof(tmp), "%s%s", base, INDEX_STY);
 		if (0 == access(tmp, R_OK)) {
 			open_sty (tmp);
 			sty_given = TRUE;
@@ -407,7 +409,7 @@ int     open_fn;
 
 	    if ((idx_fn = (char *) malloc(STRING_MAX)) == NULL)
 		FATAL("Not enough core...abort.\n", "");
-	    sprintf(idx_fn, "%s%s", base, INDEX_IDX);
+	    snprintf(idx_fn, STRING_MAX, "%s%s", base, INDEX_IDX);
 	    if ((open_fn && 
 	 ((idx_fp = OPEN_IN(idx_fn)) == NULL)
 	) ||
@@ -434,7 +436,7 @@ int     log_given;
 
     /* index output file */
     if (!ind_given) {
-	sprintf(ind, "%s%s", base, INDEX_IND);
+	snprintf(ind, sizeof(ind), "%s%s", base, INDEX_IND);
 	ind_fn = ind;
     }
     if ((ind_fp = OPEN_OUT(ind_fn)) == NULL)
@@ -442,14 +444,14 @@ int     log_given;
 
     /* index transcript file */
     if (!ilg_given) {
-	sprintf(ilg, "%s%s", base, INDEX_ILG);
+	snprintf(ilg, sizeof(ilg), "%s%s", base, INDEX_ILG);
 	ilg_fn = ilg;
     }
     if ((ilg_fp = OPEN_OUT(ilg_fn)) == NULL)
 	FATAL("Can't create transcript file %s.\n", ilg_fn);
 
     if (log_given) {
-	sprintf(log_fn, "%s%s", base, INDEX_LOG);
+	snprintf(log_fn, sizeof(log_fn), "%s%s", base, INDEX_LOG);
 	if ((log_fp = OPEN_IN(log_fn)) == NULL) {
 	    FATAL("Source log file %s not found.\n", log_fn);
 	} else {
@@ -505,6 +507,9 @@ char   *fn;
   if ((found = kpse_find_file (fn, kpse_ist_format, 1)) == NULL) {
      FATAL("Index style file %s not found.\n", fn);
   } else {
+    if (strlen(found) >= sizeof(sty_fn)) {
+      FATAL("Style file %s too long.\n", found);
+    }
     strcpy(sty_fn,found);
     if ((sty_fp = OPEN_IN(sty_fn)) == NULL) {
       FATAL("Could not open style file %s.\n", sty_fn);
@@ -512,6 +517,9 @@ char   *fn;
   }
 #else
     if ((path = getenv(STYLE_PATH)) == NULL) {
+        if (strlen(fn) >= sizeof(sty_fn)) {
+          FATAL("Style file %s too long.\n", fn);
+        }
 	/* style input path not defined */
 	strcpy(sty_fn, fn);
 	sty_fp = OPEN_IN(sty_fn);
--- texk/makeindexk/mkind.h
+++ texk/makeindexk/mkind.h	2007-02-06 13:42:38.000000000 +0100
@@ -322,7 +322,7 @@ ensuing.
 #ifdef LINE_MAX		/* IBM RS/6000 AIX has this in <sys/limits.h> */
 #undef LINE_MAX
 #endif
-#define LINE_MAX      72	/* maximum output line length (longer */
+#define LINE_MAX      _POSIX2_LINE_MAX	/* maximum output line length (longer */
 				/* ones wrap if possible) */
 
 #define NUMBER_MAX    16	/* maximum digits in a Roman or Arabic */
@@ -337,7 +337,7 @@ ensuing.
 #define ROMAN_MAX     16	/* maximum length of Roman page number */
 				/* field */
 
-#define STRING_MAX    256	/* maximum length of host filename */
+#define STRING_MAX    _POSIX2_LINE_MAX	/* maximum length of host filename */
 
 /*====================================================================*/
 

texlive-source-icu.patch:

--- NEW FILE texlive-source-icu.patch ---
--- libs/configure
+++ libs/configure	2007-02-07 12:21:24.000000000 +0000
@@ -2976,11 +2976,11 @@
   fi
 
   OLD_LDFLAGS=$LDFLAGS
-  OLD_CPP=$CPP
+  OLD_CPPFLAGS=$CPPFLAGS
   OLD_LIBS=$LIBS
 
   LDFLAGS="$LDFLAGS $EXTRA_ICU_LIBDIR"
-  CPP="$CPP $EXTRA_ICU_INCLUDE"
+  CPPFLAGS="$CPPFLAGS $EXTRA_ICU_INCLUDE -include urename.h"
 
   if test "$with_system_icu" = yes; then
     echo $ac_n "checking for ubidi_open in -licuuc""... $ac_c" 1>&6
@@ -3082,7 +3082,7 @@
   fi
 
   LDFLAGS=$OLD_LDFLAGS
-  CPP=$OLD_CPP
+  CPPFLAGS=$OLD_CPPFLAGS
   LIBS=$OLD_LIBS
 
   if test "$with_system_icu" != yes; then
--- libs/icu-xetex/icu-xetex.ac
+++ libs/icu-xetex/icu-xetex.ac	2007-02-07 12:21:39.000000000 +0000
@@ -16,11 +16,11 @@
   fi
 
   OLD_LDFLAGS=$LDFLAGS
-  OLD_CPP=$CPP
+  OLD_CPPFLAGS=$CPPFLAGS
   OLD_LIBS=$LIBS
 
   LDFLAGS="$LDFLAGS $EXTRA_ICU_LIBDIR"
-  CPP="$CPP $EXTRA_ICU_INCLUDE"
+  CPPFLAGS="$CPPFLAGS $EXTRA_ICU_INCLUDE -include urename.h"
 
   if test "$with_system_icu" = yes; then
     AC_CHECK_LIB(icuuc, ubidi_open,,
@@ -37,7 +37,7 @@
   fi
 
   LDFLAGS=$OLD_LDFLAGS
-  CPP=$OLD_CPP
+  CPPFLAGS=$OLD_CPPFLAGS
   LIBS=$OLD_LIBS
 
   if test "$with_system_icu" != yes; then
--- texk/web2c/configure
+++ texk/web2c/configure	2007-02-07 12:21:55.000000000 +0000
@@ -3018,11 +3018,11 @@
   fi
 
   OLD_LDFLAGS=$LDFLAGS
-  OLD_CPP=$CPP
+  OLD_CPPFLAGS=$CPPFLAGS
   OLD_LIBS=$LIBS
 
   LDFLAGS="$LDFLAGS $EXTRA_ICU_LIBDIR"
-  CPP="$CPP $EXTRA_ICU_INCLUDE"
+  CPPFLAGS="$CPPFLAGS $EXTRA_ICU_INCLUDE -include urename.h"
 
   if test "$with_system_icu" = yes; then
     echo $ac_n "checking for ubidi_open in -licuuc""... $ac_c" 1>&6
@@ -3124,7 +3124,7 @@
   fi
 
   LDFLAGS=$OLD_LDFLAGS
-  CPP=$OLD_CPP
+  CPPFLAGS=$OLD_CPPFLAGS
   LIBS=$OLD_LIBS
 
   if test "$with_system_icu" != yes; then
--- configure
+++ configure	2007-02-07 12:22:06.000000000 +0000
@@ -4662,11 +4662,11 @@
   fi
 
   OLD_LDFLAGS=$LDFLAGS
-  OLD_CPP=$CPP
+  OLD_CPPFLAGS=$CPPFLAGS
   OLD_LIBS=$LIBS
 
   LDFLAGS="$LDFLAGS $EXTRA_ICU_LIBDIR"
-  CPP="$CPP $EXTRA_ICU_INCLUDE"
+  CPPFLAGS="$CPPFLAGS $EXTRA_ICU_INCLUDE -include urename.h"
 
   if test "$with_system_icu" = yes; then
     echo $ac_n "checking for ubidi_open in -licuuc""... $ac_c" 1>&6
@@ -4768,7 +4768,7 @@
   fi
 
   LDFLAGS=$OLD_LDFLAGS
-  CPP=$OLD_CPP
+  CPPFLAGS=$OLD_CPPFLAGS
   LIBS=$OLD_LIBS
 
   if test "$with_system_icu" != yes; then

texlive-source-t1lib.patch:

--- NEW FILE texlive-source-t1lib.patch ---
--- configure
+++ configure	2006-01-17 17:25:04.000000000 +0100
@@ -3920,6 +3920,7 @@
     char *p = testbuf;
     int i;
     int version_num;
+    memset(p, 0, sizeof(testbuf));
     /* T1_GetLibIdent() might return something like '0.8-beta2';
        convert the leading numbers to a single digit: */
     for (i = 0; i < BUFLEN; i++) {
--- libs/configure
+++ libs/configure	2006-01-17 17:24:15.000000000 +0100
@@ -1728,6 +1728,7 @@
     char *p = testbuf;
     int i;
     int version_num;
+    memset(p, 0, sizeof(testbuf));
     /* T1_GetLibIdent() might return something like '0.8-beta2';
        convert the leading numbers to a single digit: */
     for (i = 0; i < BUFLEN; i++) {
--- libs/t1lib/t1lib.ac
+++ libs/t1lib/t1lib.ac	2006-01-17 17:26:13.000000000 +0100
@@ -45,6 +45,7 @@
     char *p = testbuf;
     int i;
     int version_num;
+    memset(p, 0, sizeof(testbuf));
     /* T1_GetLibIdent() might return something like '0.8-beta2';
        convert the leading numbers to a single digit: */
     for (i = 0; i < BUFLEN; i++) {
--- texk/dvipng/configure
+++ texk/dvipng/configure	2006-01-17 17:24:52.000000000 +0100
@@ -2659,6 +2659,7 @@
     char *p = testbuf;
     int i;
     int version_num;
+    memset(p, 0, sizeof(testbuf));
     /* T1_GetLibIdent() might return something like '0.8-beta2';
        convert the leading numbers to a single digit: */
     for (i = 0; i < BUFLEN; i++) {
--- texk/xdvik/configure
+++ texk/xdvik/configure	2006-01-17 17:24:32.000000000 +0100
@@ -4227,6 +4227,7 @@
     char *p = testbuf;
     int i;
     int version_num;
+    memset(p, 0, sizeof(testbuf));
     /* T1_GetLibIdent() might return something like '0.8-beta2';
        convert the leading numbers to a single digit: */
     for (i = 0; i < BUFLEN; i++) {

texlive-source-warns.patch:

--- NEW FILE texlive-source-warns.patch ---
--- libs/teckit/source/Compiler.cpp
+++ libs/teckit/source/Compiler.cpp	2007-03-02 10:34:35.000000000 +0000
@@ -1397,13 +1397,16 @@ Compiler::Compiler(const char* txt, UInt
 				if (dest != 0) {
 					int	result = compress2(dest + 8, &destLen, compiledTable, compiledSize, Z_BEST_COMPRESSION);
 					if (result == Z_OK) {
-						destLen += 8;
-						realloc(dest, destLen);
-						WRITE(((FileHeader*)dest)->type, kMagicNumberCmp);
-						WRITE(((FileHeader*)dest)->version, compiledSize);
-						free(compiledTable);
-						compiledTable = dest;
-						compiledSize = destLen;
+						if (realloc(dest, destLen+8) != NULL) {
+							destLen += 8;
+							WRITE(((FileHeader*)dest)->type, kMagicNumberCmp);
+							WRITE(((FileHeader*)dest)->version, compiledSize);
+							free(compiledTable);
+							compiledTable = dest;
+							compiledSize = destLen;
+						}
+						else
+							free(dest);
 					}
 					else
 						free(dest);
--- texk/kpathsea/xputenv.c
+++ texk/kpathsea/xputenv.c	2007-03-02 10:14:53.000000000 +0000
@@ -95,7 +95,7 @@ xputenv(const char *var, const char *val
     if (cur_loc == saved_count) {
         /* No old string. */
         saved_count++;
-        saved_env = XRETALLOC(saved_env, saved_count, const char *);
+        XRETALLOC(saved_env, saved_count, const char *);
     } else {
         /* We owned the old string. */
         free(saved_env[cur_loc]);
--- texk/ps2pkm/token.c
+++ texk/ps2pkm/token.c	2007-01-10 09:26:00.000000000 +0100
@@ -108,7 +108,7 @@ static DOUBLE P10(exponent)
   if (exponent < 0) {
     power = 0.1;
     value = (exponent & 1 ? power : 1.0);
-    exponent = -(++exponent >> 1); /* portable C for -(exponent/2) */
+    exponent = -((exponent+1) >> 1); /* portable C for -(exponent/2) */
   }
   else {
     power = 10.0;
--- texk/ps2pkm/type1.c
+++ texk/ps2pkm/type1.c	2007-01-10 17:09:30.000000000 +0100
@@ -110,11 +110,11 @@ typedef struct xobject xobject;
 static DOUBLE tmpx;  /* Store macro argument in tmpx to avoid re-evaluation */
 static LONG tmpi;    /* Store converted value in tmpi to avoid re-evaluation */
  
-#define FABS(x) (((tmpx = (x)) < 0.0) ? -tmpx : tmpx)
+#define FABS(x) ({ tmpx = (x); (tmpx < 0.0) ? -tmpx : tmpx; })
  
-#define CEIL(x) (((tmpi = (LONG) (tmpx = (x))) < tmpx) ? ++tmpi : tmpi)
+#define CEIL(x) ({ tmpi = (LONG) (tmpx = (x)); (tmpi < tmpx) ? ++tmpi : tmpi; })
  
-#define FLOOR(x) (((tmpi = (LONG) (tmpx = (x))) > tmpx) ? --tmpi : tmpi)
+#define FLOOR(x) ({ tmpi = (LONG) (tmpx = (x)); (tmpi > tmpx) ? --tmpi : tmpi; })
  
 #define ROUND(x) FLOOR((x) + 0.5)
  
--- texk/web2c/mpware/mpto.c
+++ texk/web2c/mpware/mpto.c	2007-03-02 10:36:04.000000000 +0000
@@ -24,11 +24,7 @@
 
 #include <stdio.h>
 #include <stdlib.h>
-
-#ifdef WIN32
 #include <string.h>
-#endif
-
 
 /* MetaPost itself has a configurable max line length, but we can afford to
    use smaller values than that */
--- texk/web2c/pdftexdir/utils.c
+++ texk/web2c/pdftexdir/utils.c	2007-03-02 10:16:35.000000000 +0000
@@ -1369,7 +1369,7 @@ int newcolorstack(integer s, integer lit
         colstacks_size += STACK_INCREMENT;
         /* If (MAX_COLORSTACKS mod STACK_INCREMENT = 0) then we don't
            need to check the case that size overruns MAX_COLORSTACKS. */
-        colstacks = xretalloc(colstacks, colstacks_size, colstack_type);
+        xretalloc(colstacks, colstacks_size, colstack_type);
     }
     /* claim new color stack */
     colstack_num = colstacks_used++;
--- texk/makeindexk/genind.h
+++ texk/makeindexk/genind.h	2007-03-15 15:28:43.000000000 +0000
@@ -25,6 +25,20 @@
  *
  */
 
+#ifndef __has_idx_printf
+#define __has_idx_printf
+#include <stdarg.h>
+static __inline__ int idx_printf(FILE *stream, const char *format, ...)
+{
+    int ret;
+    va_list ap;
+    va_start(ap, format);
+    ret = vfprintf(stream, format, ap);
+    va_end(ap);
+    return ret;
+}
+#endif
+
 #define IND_ERROR(F, D) { \
     if (idx_dot) { \
 	fprintf(ilg_fp, "\n"); \
@@ -33,7 +47,7 @@
     fprintf(ilg_fp, \
     "## Warning (input = %s, line = %d; output = %s, line = %d):\n   -- ", \
 	    curr->fn, curr->lc, ind_fn, ind_lc+1); \
-    fprintf(ilg_fp, F, D); \
+    idx_printf(ilg_fp, F, D); \
     ind_ec++; \
 }
 
--- texk/makeindexk/mkind.h
+++ texk/makeindexk/mkind.h	2007-03-15 15:29:28.000000000 +0000
@@ -253,10 +253,24 @@
 #define STREQ(A, B)  (strcmp(A, B) == 0)
 #define STRNEQ(A, B) (strcmp(A, B) != 0)
 
+#ifndef __has_idx_printf
+#define __has_idx_printf
+#include <stdarg.h>
+static __inline__ int idx_printf(FILE *stream, const char *format, ...)
+{
+    int ret;
+    va_list ap;
+    va_start(ap, format);
+    ret = vfprintf(stream, format, ap);
+    va_end(ap);
+    return ret;
+}
+#endif
+
 #define MESSAGE(F, S) { \
     if (verbose) \
-	fprintf(stderr, F, S); \
-    fprintf(ilg_fp, F, S); \
+	idx_printf(stderr, F, S); \
+    idx_printf(ilg_fp, F, S); \
 }
 
 #if USE_KPATHSEA /* kpathsea defines a different FATAL */
@@ -264,7 +278,7 @@
 #endif
 
 #define FATAL(F, S) { \
-    fprintf(stderr, F, S); \
+    idx_printf(stderr, F, S); \
     fprintf(stderr, USAGE, pgm_fn); \
     EXIT(1); \
 }
--- texk/makeindexk/scanid.h
+++ texk/makeindexk/scanid.h	2007-03-15 15:27:12.000000000 +0000
@@ -101,6 +101,20 @@
     return (FALSE); \
 }
 
+#ifndef __has_idx_printf
+#define __has_idx_printf
+#include <stdarg.h>
+static __inline__ int idx_printf(FILE *stream, const char *format, ...)
+{
+    int ret;
+    va_list ap;
+    va_start(ap, format);
+    ret = vfprintf(stream, format, ap);
+    va_end(ap);
+    return ret;
+}
+#endif
+
 #define IDX_ERROR(F, D) { \
     if (idx_dot) { \
 	fprintf(ilg_fp, "\n"); \
@@ -108,7 +122,7 @@
     } \
     fprintf(ilg_fp, "!! Input index error (file = %s, line = %d):\n   -- ", \
 	    idx_fn, idx_lc); \
-    fprintf(ilg_fp, F, D); \
+    idx_printf(ilg_fp, F, D); \
     idx_ec++; \
 }
 
--- texk/makeindexk/scanst.h
+++ texk/makeindexk/scanst.h	2007-03-15 15:48:48.000000000 +0000
@@ -145,6 +145,20 @@
 
 #define INDENTLEN_DEF 16
 
+#ifndef __has_idx_printf
+#define __has_idx_printf
+#include <stdarg.h>
+static __inline__ int idx_printf(FILE *stream, const char *format, ...)
+{
+    int ret;
+    va_list ap;
+    va_start(ap, format);
+    ret = vfprintf(stream, format, ap);
+    va_end(ap);
+    return ret;
+}
+#endif
+
 #define STY_ERROR(F, D) { \
     if (idx_dot) { \
 	fprintf(ilg_fp, "\n"); \
@@ -152,7 +166,7 @@
     } \
     fprintf(ilg_fp, "** Input style error (file = %s, line = %d):\n   -- ", \
 	    sty_fn, sty_lc); \
-    fprintf(ilg_fp, F, D); \
+    idx_printf(ilg_fp, F, D); \
     sty_ec++; \
     put_dot = FALSE; \
 }

texlive-source-x11r7.patch:

--- NEW FILE texlive-source-x11r7.patch ---
--- texk/xdvik/xdvi.h
+++ texk/xdvik/xdvi.h	2007-01-10 15:40:33.000000000 +0000
@@ -190,6 +190,12 @@ typedef unsigned long xuint32;
 # endif
 #endif
 
+/* redefine X11 macros for our own usage, see below */
+#ifdef __STDC__
+# undef NeedFunctionPrototypes
+# undef NeedWidePrototypes
+#endif
+
 /* for unused parameters */
 #ifndef UNUSED
 #define UNUSED(x) ((void)(x))

texlive-source-xdvi-numlock.patch:

--- NEW FILE texlive-source-xdvi-numlock.patch ---
--- texk/xdvik/translations.h
+++ texk/xdvik/translations.h	2005-02-07 14:07:44.000000000 +0100
@@ -119,15 +119,26 @@
     "<Key>Escape:	discard-number()\n"
 #endif
 #ifdef XK_KP_Left
-    "<Key>KP_Home:	home()\n"
-    "<Key>KP_Left:	left()\n"
-    "<Key>KP_Up:	up()\n"
-    "<Key>KP_Right:	right()\n"
-    "<Key>KP_Down:	down()\n"
-    "<Key>KP_Prior:	back-page()\n"
-    "<Key>KP_Next:	forward-page()\n"
-    "<Key>KP_Delete:	up-or-previous()\n"
-    "<Key>KP_Enter:	forward-page()\n"
+    "~@Num_Lock<Key>KP_Home:home()\n"
+    "~@Num_Lock<Key>KP_Left:left(0.015)\n"
+    "~@Num_Lock<Key>KP_Begin:center()\n"
+    "~@Num_Lock<Key>KP_Up:up(0.015)\n"
+    "~@Num_Lock<Key>KP_Right:right(0.015)\n"
+    "~@Num_Lock<Key>KP_Down:down(0.015)\n"
+    "~@Num_Lock<Key>KP_Prior:back-page()\n"
+    "~@Num_Lock<Key>KP_Next:forward-page()\n"
+    "<Key>KP_Enter:forward-page()\n"
+    "<Key>KP_Delete:up-or-previous()\n"
+    "<Key>KP_1:digit(1)\n"
+    "<Key>KP_2:digit(2)\n"
+    "<Key>KP_3:digit(3)\n"
+    "<Key>KP_4:digit(4)\n"
+    "<Key>KP_5:digit(5)\n"
+    "<Key>KP_6:digit(6)\n"
+    "<Key>KP_7:digit(7)\n"
+    "<Key>KP_8:digit(8)\n"
+    "<Key>KP_9:digit(9)\n"
+    "<Key>KP_0:digit(0)\n"
 #endif
     "";
 

texlive-source-xdvizilla.patch:

--- NEW FILE texlive-source-xdvizilla.patch ---
--- texk/xdvik/xdvizilla
+++ texk/xdvik/xdvizilla	2005-02-07 14:18:11.000000000 +0100
@@ -61,8 +61,8 @@
 trap 'do_cleanup' 1 2 3 7 13 15
 
 ### create a temporary directory only read/writable by user
-TMP_DIR=${TMPDIR-${TEMP-${TMP-/tmp}}}/$progname.$$
-(umask 077; mkdir "$TMP_DIR") || do_abort "Could not create directory \`$TMP_DIR'"
+TMP_DIR=${TMPDIR-${TEMP-${TMP-/tmp}}}/${progname}.XXXXXX
+TMP_DIR=$(mktemp -d "$TMP_DIR") || do_abort "Could not create directory \`$TMP_DIR'"
 
 if [ $# -gt 1 -a "x$1" = "x-no-rm" ]; then
   NO_RM=y

texlive-teckit.patch:

--- NEW FILE texlive-teckit.patch ---
diff -up texlive-2007/texk/web2c/xetexdir/xetex.mk.system_teckit texlive-2007/texk/web2c/xetexdir/xetex.mk
--- texlive-2007/texk/web2c/xetexdir/xetex.mk.system_teckit	2007-08-18 16:29:37.000000000 +0200
+++ texlive-2007/texk/web2c/xetexdir/xetex.mk	2007-08-18 16:30:06.000000000 +0200
@@ -56,8 +56,8 @@ FREETYPE2DEP = @FREETYPE2DEP@
 FREETYPE2DIR = ../../libs/freetype2
 FREETYPE2SRCDIR = $(srcdir)/$(FREETYPE2DIR)
 
-TECKITFLAGS = @TECKITCPPFLAGS@
-LDTECKIT = @LDTECKIT@
+TECKITFLAGS = -I/usr/include/teckit
+LDTECKIT = -lTECkit
 TECKITDEP = @TECKITDEP@
 
 TECKITDIR=../../libs/teckit

texlive-texdoc.patch:

--- NEW FILE texlive-texdoc.patch ---
diff -up texlive-2007/texk/tetex/texdoc.man.texdoc texlive-2007/texk/tetex/texdoc.man
--- texlive-2007/texk/tetex/texdoc.man.texdoc	2006-01-17 22:41:51.000000000 +0100
+++ texlive-2007/texk/tetex/texdoc.man	2007-08-18 19:13:50.000000000 +0200
@@ -28,12 +28,17 @@ distribution\&.
 .PP 
 .SH "OPTIONS" 
 .PP 
-.IP "\fB--help\fP" 
+.IP "\fB\-\-help\fP" 
 Display a brief summary of options\&.
 .IP 
-.IP "\fB-l\fP" 
+.IP "\fB\-l\fP" 
 List matching files\&.  Does not start a viewer\&.
-.IP "\fB-v\fP" 
+.PP
+.IP "\fB\-s\fP"
+Search the disk. From all documentation files found by texdoc, the
+ones whose names match the remaining arguments (as egrep pattern) will
+be displayed.
+.IP "\fB\-v\fP" 
 Sets verbose mode\&.  Shows the command being used to
 display the documentation\&.
 .PP 
@@ -42,14 +47,17 @@ display the documentation\&.
 .IP "\fB$TEXDOCVIEW_dvi\fP" 
 DVI viewer\&.  Defaults to \fBxdvi\fP(1)\&.
 .IP "\fB$TEXDOCVIEW_pdf\fP" 
-PDF viewer\&.  Defaults to \fBacroread\fP(1)\&.
+PDF viewer\&. The default is to use the program specified
+by the freedesktop standard\&.
 .IP "\fB$TEXDOCVIEW_ps\fP" 
-PostScript viewer\&.  Defaults to
-\fBghostview\fP(1)\&.
+PostScript viewer\&. The default is to use the program specified
+by the freedesktop standard\&.
 .IP "\fB$TEXDOCVIEW_html\fP" 
-HTML viewer\&.  Defaults to \fBnetscape\fP(1)\&.
+HTML viewer\&. The default is to use a program through
+\fBxdg-open\fP\&.
 .IP "\fB$TEXDOCVIEW_txt\fP" 
-Text viewer\&.  Defaults to \fB$PAGER-more\fP\&.
+Text viewer\&.  Defaults is to use the program specified
+by the freedesktop standard\&.
 .PP 
 The environment variables should be set with a ``%s\&'\&' as a placeholder
 for the name of the file\&.  For example,
@@ -66,10 +74,18 @@ hostname$ TEXDOCVIEW_html="mozilla %s"
 hostname$ export TEXDOCVIEW_html
 .EE 
 .PP 
+.SH "SPECIFIC TO DEBIAN AND FEDORA"
+.PP
+The Debian and Fedora TeX Live packages texdoc use the mime-support package to determine
+the appropriate viewer for the respective file type except for
+\fIdvi\fP. texdoc of Debian and Fedora is able to handle gzip- and
+bzip2-compressed files. If texdoc finds more than on file for a string
+the first hit is displayed. The file extensions are regarded and the
+search order can be configured in \fItexmf.cnf\fP (\fI90TeXDoc.cnf\fP).
+.PP 
 .SH "SEE ALSO" 
 .PP 
-\fBacroread\fP(1), \fBgv\fP(1), \fBkpsewhich\fP(1),
-\fBless\fP(1), \fBmore\fP(1), \fBxdvi\fP(1)
+\fBxdg-open\fP(1), \fBxdvi\fP(1)
 .PP 
 Web page: <http://tug\&.org/teTeX/>
 .PP 
diff -up texlive-2007/texk/tetex/texdoc.texdoc texlive-2007/texk/tetex/texdoc
--- texlive-2007/texk/tetex/texdoc.texdoc	2006-01-17 22:41:51.000000000 +0100
+++ texlive-2007/texk/tetex/texdoc	2007-08-18 19:10:51.000000000 +0200
@@ -17,6 +17,15 @@
 #
 # Support for compressed documentation implemented by adopting changes
 # made by debian. Thomas Esser, Dec. 2004.
+#
+# Debian specific changes:
+#    Denis Barbier <barbier at imacs.polytechnique.fr>, Feb 15 2000
+#  * accept gzipped files on input
+#  * temporary directory set according to TMPDIR
+#    
+#    Frank Küster <frank at debian.org>, 2004-11-23
+#  * do not uncompress dvi.gz, xdvi can handle this
+#  * go to background with uncompressed files
 
 test -f /bin/sh5 && test -z "$RUNNING_SH5" \
   && { UNAMES=`uname -s`; test "x$UNAMES" = xULTRIX; } 2>/dev/null \
@@ -30,22 +39,22 @@ unset RUNNING_BSH
 
 export PATH
 
-needsCleanup=false
+# needsCleanup=false
 progname=texdoc
-tmpdir=${TMPDIR-${TEMP-${TMP-/tmp}}}/$progname.$$
+# tmpdir=${TMPDIR-${TEMP-${TMP-/tmp}}}/$progname.$$
 
 ###############################################################################
 # setupTmpDir()
 #   set up a temp directory and a trap to remove it
 ###############################################################################
-setupTmpDir()
-{
-  $needsCleanup && return
+# setupTmpDir()
+# {
+#   $needsCleanup && return
 
-  trap 'cleanup --force' 1 2 3 7 13 15
-  needsCleanup=true
-  mkdir "$tmpdir" || abort "could not create directory \`$tmpdir'"
-}
+#   trap 'cleanup --force' 1 2 3 7 13 15
+#   needsCleanup=true
+#   mkdir "$tmpdir" || abort "could not create directory \`$tmpdir'"
+# }
 
 ###############################################################################
 # abort(errmsg) 
@@ -65,15 +74,21 @@ abort()
 ###############################################################################
 cleanup()
 {
-  case $1 in
-    --force)
-        $needsCleanup && test -n "$tmpdir" && test -d "$tmpdir" \
-          && { rm -f "$tmpdir"/*; cd /; rmdir "$tmpdir"; }
-        ;;
-    *)  # directory might not be empty if some other viewer is still
-        # running, so be quiet about it
-        rmdir $tmpdir >/dev/null 2>&1;;
-  esac
+#   case $1 in
+#     --force)
+#         $needsCleanup && test -n "$tmpdir" && test -d "$tmpdir" \
+#           && { rm -f "$tmpdir"/*; cd /; rmdir "$tmpdir"; }
+#         ;;
+#     *)  # directory might not be empty if some other viewer is still
+#         # running, so be quiet about it
+#         rmdir $tmpdir >/dev/null 2>&1;;
+#   esac
+  # is the temporary directory empty? If not, texdoc was called with 
+  # two or more arguments, and one viewer is still running
+  if test "`echo $tmpdir/*`" = $tmpdir/'*'
+  then
+    rm -rf $tmpdir
+  fi
 }
 
 
@@ -92,12 +107,11 @@ case `(uname -s) 2>/dev/null` in
 	;;
   *)
 	: ${TEXDOCVIEW_dvi='(xdvi %s) &'}
-	: ${TEXDOCVIEW_pdf='(acroread %s) &'}
-	: ${TEXDOCVIEW_ps='(gv %s) &'}
-	: ${TEXDOCVIEW_html='mozilla -remote openURL'"'(%s)'"' 2>/dev/null || mozilla %s &'}
-	: ${TEXDOCVIEW_txt="${PAGER-more} %s"}
-	: ${TEXDOCVIEW_="${PAGER-more} %s"} # no extension, default to pager
-        extlist='.dvi .dvi.gz .dvi.bz2 .pdf .pdf.gz .pdf.bz2 .ps .ps.gz .ps.bz2 .txt .txt.gz .txt.bz2 .html'
+	: ${TEXDOCVIEW_pdf='(xdg-open %s) &'}
+	: ${TEXDOCVIEW_ps='(xdg-open %s) &'}
+	: ${TEXDOCVIEW_html='(xdg-open %s) &'}
+	: ${TEXDOCVIEW_txt='(xdg-open %s) &'}
+	: ${TEXDOCVIEW_='(xdg-open %s) &'}
 
         # Commands run to uncompress files, according to filename extension.
         : ${TEXDOCUNZIP_gz='gzip -d -c'}
@@ -105,6 +119,10 @@ case `(uname -s) 2>/dev/null` in
 	;;
 esac
 
+extlist=`kpsewhich --expand-brace='$TEXDOCEXT' | tr ':' ' '`
+test -z "$extlist" && \
+extlist='.dvi .dvi.gz .dvi.bz2 .pdf .pdf.gz .pdf.bz2 .ps .ps.gz .ps.bz2 .txt .txt.gz .txt.bz2 .html'
+
 mode=viewer
 help='Usage: texdoc [OPTION]... [NAME]...
   Search for NAME in the TeX documentation and start a viewer.
@@ -136,11 +154,14 @@ case $# in
     ;;
 esac
 
+tmpdir=`mktemp -d -t texdoc.XXXXXXXX`
+trap 'rc=$?; cleanup; exit $rc' 1 2 6 13 15
+
 for name
 do
   case $mode in
     search)
-      find `kpsewhich --expand-path='$TEXMF/doc' | tr : ' '` -type f -print |
+      find `kpsewhich --expand-path='$TEXDOCS' | tr : ' '` -follow -type f -print |
         egrep $name
       continue
       ;;
@@ -153,7 +174,6 @@ do
 
   found=false
   for ext in "" $extlist; do
-
     filename=`kpsewhich -format='TeX system documentation' $name$ext 2>/dev/null`
     test -z "$filename" && continue
     found=true
@@ -177,7 +197,6 @@ do
         # than once
         test -f "$tmpdir/$src" && break
 
-        setupTmpDir
         eval "$uncompress $filename > $tmpdir/$src"
         filename=$tmpdir/$src
         viewer=`eval echo $viewer | sed -e "s|%s|$filename; rm -f $filename; cleanup|"`

texlive-xdvi-maxchar.patch:

--- NEW FILE texlive-xdvi-maxchar.patch ---
diff -up texlive-2007/texk/xdvik/dvi-draw.c.maxchar texlive-2007/texk/xdvik/dvi-draw.c
--- texlive-2007/texk/xdvik/dvi-draw.c.maxchar	2007-11-20 15:21:35.000000000 +0100
+++ texlive-2007/texk/xdvik/dvi-draw.c	2007-11-22 15:31:06.000000000 +0100
@@ -5911,6 +5911,8 @@ get_t1_glyph(
 	      t1libid, currinf.fontp->scale,
 	      size, currwin.shrinkfactor));
 
+    if (ch > maxchar)
+    	return NULL;
     /* Check if the glyph already has been rendered */
     if ((g = &currinf.fontp->glyph[ch])->bitmap.bits == NULL) {
 	int bitmapbytes;

texlive-xdvi.patch:

--- NEW FILE texlive-xdvi.patch ---
--- texlive-bin-2006.svn3816.orig/build/source/texk/xdvik/gui/search-dialog.c	2006-01-17 22:41:51.000000000 +0100
+++ texlive-bin-2006.svn3816/build/source/texk/xdvik/gui/search-dialog.c	2007-01-26 04:00:04.000000000 +0100
@@ -694,6 +694,11 @@
 #ifdef MOTIF
     XtAddCallback(searchbox_input, XmNactivateCallback, cb_search_get_term, settings);
 #endif
+
+    /* Fix for #1499566: Force input focus for text input field */
+#ifndef MOTIF
+    XtSetKeyboardFocus(find_paned, searchbox_input);
+#endif
     
     /*
      * form for left row of options checkbuttons
--- texlive-bin-2006.svn3816.orig/build/source/texk/xdvik/dvi-draw.c	2006-01-17 22:41:51.000000000 +0100
+++ texlive-bin-2006.svn3816/build/source/texk/xdvik/dvi-draw.c	2007-01-26 04:00:04.000000000 +0100
@@ -1255,6 +1255,9 @@
 	do_color_change();
     }
 #endif
+    if (pixeltbl == NULL) {
+        do_color_change();
+    }
 
     /* TODO: rounding errors causing color fringing (see HACK comment below):
        


--- NEW FILE texlive.cron ---
#!/bin/bash
# Remove TeX fonts not used in 180 days
/usr/sbin/tmpwatch 4320 /var/lib/texmf
exit 0


--- NEW FILE texlive.spec ---
# This spec file is based on texjive project created by Michael A. Peters.
# Adopted and modified for Fedora by Jindrich Novy.

%define texlive_ver 2007

%define	enable_japanese	1
%define	ptex_src_ver 3.1.10
%define pdvipsk_ver p1.7a
%define	mendexk_ver 2.6e

%define desktop_file_utils_version 0.9
%define default_letter_paper 0
# lcdf typetools can be easily built as a separate tool, so it should be
%define disable_lcdf_typetools 1

# These need to match what is in the texlive-texmf package.
#  since texlive-texmf is a BuildRequires, it installs an rpm macro
#  file that defines them. Change the definitions in the texlive-texmf.spec
#  file and rebuild it if you do not like where things get put.
%{!?_texmf_main: %define _texmf_main %{_datadir}/texmf}
%{!?_texmf_conf: %define _texmf_conf %{_sysconfdir}/texmf}
%{!?_texmf_var:  %define _texmf_var %{_var}/lib/texmf}

Name:		texlive
Version:	%{texlive_ver}
Release:	0.17%{?dist}
Summary:	Binaries for the TeX formatting system

Group:		Applications/Publishing
License:	GPLv2 and BSD and Public Domain and LGPLv2+ and GPLv2+ and LPPL
URL:		http://tug.org/texlive/

#####
# Source0-99: main sources
#####
#Source0:	http://tug.org/svn/texlive/branches/branch2007/Master/source/source.tar.bz2
# non free source files removed with texlive-generate-tarball.sh
Source0:	source-free.tar.bz2
#Source1:	xpdf-3.02.tar.bz2

Source10:	texlive.cron
# Source30 is http://xdvi.sourceforge.net/xdvi48x48.gif converted to png
Source30:	xdvi48x48.png
# Filter out bad requirements (RH bug #59819).
Source99:	texlive-filter-requires.sh
Source100:	texlive-generate-tarball.sh
%define __perl_requires %{SOURCE99}
# 1000-: Japanese pTeX
Source1000:	ftp://ftp.ascii.co.jp/pub/TeX/ascii-ptex/tetex/ptex-src-%{ptex_src_ver}.tar.gz
Source1001:	ftp://ftp.ascii.co.jp/pub/TeX/ascii-ptex/dvips/dvipsk-jpatch-%{pdvipsk_ver}.tar.bz2
Source1002:	ftp://ftp.ascii.co.jp/pub/TeX/ascii-ptex/mendex/mendexk%{mendexk_ver}.tar.gz
Source1003:	vfontmap


# Don't run brp-python-bytecompile
%define __os_install_post  /usr/lib/rpm/redhat/brp-compress /usr/lib/rpm/redhat/brp-strip %{__strip} /usr/lib/rpm/redhat/brp-strip-static-archive %{__strip} /usr/lib/rpm/redhat/brp-strip-comment-note %{__strip} %{__objdump} %{nil}

######
# Red Hat-specific TeX configuration patches
######

# and sane defaults to build against can be inserted via sed
Patch5: texlive-2007-browser.patch
Patch6: texlive-2007-tkdep.patch
Patch8: texlive-2007-xprint.patch
Patch9: texlive-teckit.patch

Patch21: texlive-more_paths.patch
Patch22: texlive-fedora_paths.patch

######
# TeX patches
######

Patch10: texlive-2007-dvipdfm-security.patch
Patch11: texlive-2007-makej.patch
Patch12: texlive-2007-badscript.patch
Patch15: texlive-2007-xdvi-keepflag.patch
Patch17: texlive-2007-tmpcleanup.patch
Patch19: texlive-2007-kpse-extensions.patch
Patch20: texlive-CVE-2007-4033.patch
Patch23: texlive-CVE-2007-4352-5392-5393.patch
Patch24: texlive-xdvi-maxchar.patch
Patch25: texlive-dvipsoverflow.patch
Patch26: texlive-dviljktemp.patch
Patch27: texlive-poppler.patch

######
# mpeters contributed patches
######
# fixes man pages to utf-8
Patch41: texlive-2007-kuesterei-man.patch
Patch42: texlive-2007-copyright-utf8-man.patch
# use proper shellbang
Patch43: texlive-2007-epstopdf-shellbang.patch

######
# Debian patches
###### 
Patch100:       texlive-Build_script.patch
Patch101:       texlive-mktexlsr_fixes.patch
Patch102:       texlive-fix_pkfix_invocation.patch
Patch104:       texlive-12a_fix_thumbpdf_invocation.patch
Patch105:       texlive-12b_fix_a2ping_invocation.patch
Patch106:       texlive-12c_fix_pdfcrop_invocation.patch
Patch107:       texlive-12d_fix_ebong_invocation.patch
Patch108:       texlive-12e_fix_vpe_invocation.patch
Patch109:       texlive-texdoc.patch
Patch111:       texlive-xdvi.patch
Patch114:       texlive-dvips_fontbug_fix_upstream.patch
Patch115:       texlive-maketexmf.patch
Patch117:       texlive-fmtutil_keep_failedlog.patch
Patch119:       texlive-checklib_fixes.patch
Patch120:       texlive-dvipdfm_timezone.patch
Patch123:       texlive-fix_makempx_installation.patch

######
# Mandriva patches
######
Patch202:       texlive-pdftex.patch

######
# Suse patches
###### 
Patch300:       texlive-source-icu.patch
Patch301:       texlive-source-t1lib.patch
Patch302:       texlive-source-warns.patch
Patch303:       texlive-source-x11r7.patch
Patch304:       texlive-source-xdvi-numlock.patch
Patch305:       texlive-source-xdvizilla.patch
Patch306:       texlive-source-CVE-2007-0650.patch

# 1000-: Japanese pTeX
Patch1000:	dvipsk-jpatch-pdvips.patch
# prepare from http://sourceforge.jp/projects/xdvi/
# remove patch for configure because it is regenerated from autoconf2.13.
Patch1002:	xdvik-22.84.10-j1.34.patch
Patch1003:	texlive-2007-pxdvi.patch
Patch1004:	texlive-2007-jp-platex209.patch
Patch1005:	texlive-2007-pdvips.patch
Patch1006:	texlive-2007-ptex-3.1.10.patch

BuildRoot:	%{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)

BuildRequires:	flex bison ed gawk xdg-utils
BuildRequires:	desktop-file-utils >= %{desktop_file_utils_version}
BuildRequires:	ncurses-devel zlib-devel libpng-devel gd-devel t1lib-devel
BuildRequires:	libSM-devel libICE-devel Xaw3d-devel
BuildRequires:	poppler-devel >= 0.6.2-2
# for non-modular xorg - use xorg-devel instead of above
BuildRequires:	teckit-devel
# temporarily require texlive-texmf for ptex
#BuildRequires:	texlive-texmf = %{version}
# pxdvi requires freetype >= 2.1.10
%if %{enable_japanese}
BuildRequires:  freetype-devel >= 2.1.10
%endif
Requires:	xdg-utils ruby
Requires:	texlive-texmf = %{version}
Requires:	texlive-fonts = %{version}-%{release}
Requires:	texlive-texmf-errata = %{version}
# for a2ping
Requires:	ghostscript
# for ps4pdf
Requires:	texlive-dvips = %{version}-%{release}
# used to be in tetex, but is a separated project
%if %{enable_japanese}
Requires:	mendexk 
%endif
# needed by xetex
Requires:	dvipdfmx
# make sure fonts package installed before running post - since
# fmtutil-sys is symlink to fmtutil
Requires(post):	%{_bindir}/fmtutil
Obsoletes:	tetex <= 3.0
Provides:	tetex = 3.1

%description
TeXLive is an implementation of TeX for Linux or UNIX systems. TeX takes
a text file and a set of formatting commands as input and creates a
printable file as output. Usually, TeX is used in conjunction with
a higher level formatting package like LaTeX or PlainTeX, since TeX by
itself is not very user-friendly.

Install texlive if you want to use the TeX text formatting system. Consider
to install texlive-latex (a higher level formatting package which provides
an easier-to-use interface for TeX).

The TeX documentation is located in the texlive-doc package.

%package afm
Summary: A converter for PostScript(TM) font metric files, for use with TeX
Group: Applications/Publishing
Obsoletes: tetex-afm <= 3.0
Provides:  tetex-afm = 3.1
Requires: texlive-texmf-afm = %{version}
Requires: texlive-texmf-errata = %{version}

%description afm
texlive-afm provides afm2tfm, a converter for PostScript(TM) font metric
files. PostScript fonts are accompanied by .afm font metric files
which describe the characteristics of each font. To use PostScript
fonts with TeX, TeX needs .tfm files that contain similar information.
Afm2tfm will convert .afm files to .tfm files.

If you are installing texlive in order to use the TeX text formatting
system and PostScript files, you will need to install texlive-afm. You will
also need to install texlive-dvips (for converting .dvi files to PostScript
format for printing on PostScript printers), texlive-latex (a higher level
formatting package which provides an easier-to-use interface for TeX), and
texlive-xdvi (for previewing .dvi files in X).

The TeX documentation is located in the texlive-doc package.

%package dvips
Summary: A DVI to PostScript converter for the TeX text formatting system
Group: Applications/Publishing
Requires: texlive-fonts = %{version}-%{release}
Requires: psutils
Obsoletes: tetex-dvips <= 3.0
Provides:  tetex-dvips = 3.1
Requires: texlive-texmf-dvips = %{version}
Requires: texlive-texmf-errata = %{version}


%description dvips
Dvips converts .dvi files, for example those produced by the TeX text 
formatting system, to PostScript(TM) format.

If you are installing texlive, so that you can use the TeX text
formatting system without direct PDF compilation, consider to install
texlive-dvips. In addition, you will need to install texlive-latex 
(a higher level formatting package which provides an easier-to-use 
interface for TeX), and xdvi (for previewing .dvi files in X).

%package dviutils
Summary: A collection of utilities for working with dvi files
Group: Applications/Publishing
# not positive about this requires, pretty sure though
Requires: texlive-fonts = %{version}-%{release}
# used to be in tetex, but has a separate upstream
Requires: dvipng, dvipdfm
# some dvi utilities used to be in tetex
Obsoletes: tetex <= 3.0

%description dviutils
The texlive-dviutils package includes a set of tools for working with dvi
files. You only need this package if you plan to manipulate existing dvi files.

%package fonts
Summary: The font files for the TeX text formatting system
Group: Applications/Publishing
Obsoletes: tetex-fonts <= 3.0
Provides:  tetex-fonts = 3.1
# needed by allcm, allec, allneeded 
Requires: texlive-dvips = %{version}-%{release}
Requires: texlive-texmf-fonts >= %{version}
Requires: texlive-texmf-errata = %{version}


%description fonts
The texlive-fonts package contains programs required to generate font files
for the TeX text formatting system. 

The kpathsea related programs are also in this package, they are needed 
in order to find out a file in the TeX file tree.


%package latex
Summary: The LaTeX front end for the TeX text formatting system
Group: Applications/Publishing
Requires: texlive = %{version}-%{release}, texlive-dvips = %{version}-%{release}
Requires: netpbm-progs
# make sure main and fonts package installed before running post
Requires(post): %{_bindir}/fmtutil %{_bindir}/fmtutil-sys
BuildRequires: ghostscript netpbm-progs
Obsoletes: tetex-latex <= 3.0
Provides:  tetex-latex = 3.1
Requires: texlive-texmf-latex = %{version}
Requires: texlive-texmf-errata = %{version}

%description latex
LaTeX is a front end for the TeX text formatting system. Easier to
use than TeX. LaTeX is essentially a set of TeX macros which provide
convenient, predefined document formats for users. It also allows to
compile LaTeX files directly to PDF format.

The TeX documentation is located in the texlive-doc package.

%package -n kpathsea
Summary: Shared library needed by kpathsea and info files
Group:   Development/Libraries
Obsoletes: tetex-fonts <= 3.0

%description -n kpathsea
Shared library needed by kpathsea and info files.

%package -n kpathsea-devel
Summary: Files needed to build software against kpathsea
Group:   Development/Libraries
Requires:  kpathsea = %{version}-%{release}

%description -n kpathsea-devel
This package includes the kpathsea header files and the libkpathsea.so
symbolic link.

You only need to install this package if you will be compiling software that
wants to link against the kpathsea library.

%package -n xdvi
Summary: An X viewer for DVI files
Group: Applications/Publishing
Requires: texlive-dvips = %{version}-%{release}
Requires(post): desktop-file-utils >= %{desktop_file_utils_version}
Version: 22.84.12
#Url: http://xdvi.sourceforge.net/
#Source0: http://downloads.sourceforge.net/xdvi/xdvik-%{version}.tar.gz
Obsoletes: tetex-xdvi <= 3.0
Provides:  tetex-xdvi = 3.1
#Provides:  texlive-xdvi = %{version}-%{release}
#Requires:  texlive-texmf-errata = %{version}


%description -n xdvi
Xdvik, the kpathsea version of xdvi, is a previewer for DVI files
produced e.g. by the TeX or troff typesetting systems.

If you are installing texlive and you use PlainTeX or you are using DVI files,
you will also need to install xdvi which allows you to view DVI files.
Consider installing texlive-dvips (for converting .dvi files to PostScript
format for printing on PostScript printers), and texlive-latex (a higher level
formatting package which provides an easier-to-use interface for TeX).

%package -n dvipng
Summary: DVI-to-PNG converter
Version: 1.9
Group: Applications/Publishing
#Url: http://savannah.nongnu.org/projects/dvipng/
#Source0: http://download.savannah.gnu.org/releases/dvipng/dvipng-%{version}.tar.gz

%description -n dvipng
This program makes PNG and/or GIF graphics from DVI files as obtained 
from TeX and its relatives.

%package -n mendexk
Summary: Replacement for makeindex with many enhancements
Group: Applications/Publishing
Version: %{mendexk_ver}
#Url: ftp://ftp.ascii.co.jp/pub/TeX/ascii-ptex/mendex/
#Source0: ftp://ftp.ascii.co.jp/pub/TeX/ascii-ptex/mendex/mendexk%{version}.tar.bz2

%description -n mendexk
Replacement for makeindex with many enhancements.

%package -n dvipdfm
Summary: DVI to PDF translator
Version: 0.13.2d
Group: Applications/Publishing
#Url: http://gaspra.kettering.edu/dvipdfm/
#Source0: http://gaspra.kettering.edu/dvipdfm/dvipdfm-%{version}.tar.gz
# for dvipdft
Requires: ghostscript
# for .enc files
Requires: texlive-texmf-dvips = %{texlive_ver}

%description -n dvipdfm
DVI to PDF translator.

%package -n dvipdfmx
Summary: Extended version of the dvipdfm DVI to PDF translator
Group: Applications/Publishing
Version: 0
#Url: http://project.ktug.or.kr/dvipdfmx/
# %define ver_date 20070518
#Source0: http://project.ktug.or.kr/dvipdfmx/snapshot/release/dvipdfmx-%{ver_date}.tar.gz
# for cmap files
Requires: texlive-texmf-fonts = %{texlive_ver}
Provides: texlive-dvipdfmx

%description -n dvipdfmx
The dvipdfmx (formerly dvipdfm-cjk) project provides an eXtended version
of the dvipdfm, a DVI to PDF translator developed by Mark A. Wicks.

The primary goal of this project is to support multi-byte character
encodings and large character sets for East Asian languages. The secondary
goal is to support as many features as pdfTeX developed by Han The Thanh.

This project is a combined work of the dvipdfm-jpn project by Shunsaku
Hirata and its modified one, dvipdfm-kor, by Jin-Hwan Cho.

# without this define, the version is overriden by separated subpackages
# versions
%define version %{texlive_ver}

%prep
%setup -q -T -c -a0

# replace old xpdf with 3.02 from upstream to fix CVE-2007-3387
#pushd libs
#rm -rf xpdf
#tar fxj %{SOURCE1}
#popd

# fix for debuginfo rpmlint happiness
chmod -x texk/dvipdfm/macglyphs.h
chmod -x texk/dvipdfm/ttf.c
chmod -x texk/dvipdfm/encodings.c

######
# Red Hat-specific TeX configuration patches
######
# Use htmlview first
%patch5 -p1 -b .browser
%patch6 -p1 -b .tkdep
%patch8 -p1 -b .xprint
%patch9 -p1 -b .teckit
%patch22 -p1 -b .fedora_paths

######
# TeX patches
######

# Don't use tmpnam() in dvipdfm.
%patch10 -p1 -b .dvipdfm-security
# Fix parallel builds.
%patch11 -p1 -b .makej
# Don't use PID for temporary file names in scripts (RH bug #41269)
%patch12 -p1 -b .badscript
# Fix xdvi - navigation with a spacebar does not keep position (RH bug #168124)
%patch15 -p1 -b .xdvi-keepflag
# Always cleanup temporary directories for texconfig, updmap, fmtutil
#  (RH #172534)
%patch17 -p1 -b .tmpcleanup
%patch19 -p0 -b .kpse-extensions
%patch20 -p1 -b .CVE-2007-4033
%patch21 -p1 -b .more_paths
#%patch23 -p1 -b .CVE-2007-4352-5392-5393
%patch24 -p1 -b .maxchar
%patch25 -p1 -b .dvipsoverflow
%patch26 -p1 -b .dviljktemp
%patch27 -p1 -b .poppler

# fix non utf man pages
%patch41 -p1 -b .notutf8
%patch42 -p1 -b .notutf8-2
# user a proper shellbang
%patch43 -p1 -b .perl

%patch100 -p3
%patch101 -p3
%patch102 -p3
%patch104 -p3
%patch105 -p3
%patch106 -p3
%patch107 -p3
%patch108 -p3
%patch109 -p1
%patch111 -p3
%patch114 -p3
%patch115 -p3
%patch117 -p3
%patch119 -p3
%patch120 -p3
%patch123 -p3

%patch202 -p1 -b .pdftex

%patch300 -p0
%patch301 -p0
%patch302 -p0
%patch303 -p0
%patch304 -p0
%patch305 -p0
%patch306 -p0


#pushd texk/kpathsea
#%{__sed} -i 's?^TEXMF =.*?TEXMF = {\$TEXMFCONFIG,\$TEXMFVAR,\$TEXMFHOME,\$TEXMFSYSCONFIG,\!\!\$TEXMFSYSVAR,\!\!\$TEXMFLOCAL,\!\!\$TEXMFMAIN,\!\!\$TEXMFDIST}?' texmf.in
#%{__sed} -i 's?^TEXMFMAIN =.*?TEXMFMAIN = %{_texmf_main}?' texmf.in
#%{__sed} -i 's?^TEXMFDIST =.*?TEXMFDIST = %{_texmf_main}?' texmf.in
#%{__sed} -i 's?^TEXMFLOCAL =.*?TEXMFLOCAL = /usr/local/texmf?' texmf.in
#%{__sed} -i 's?^TEXMFSYSVAR =.*?TEXMFSYSVAR = %{_texmf_var}?' texmf.in
#%{__sed} -i 's?^TEXMFSYSCONFIG =.*?TEXMFSYSCONFIG = %{_texmf_conf}?' texmf.in
#popd

%if %{disable_lcdf_typetools}
pushd utils
rm -rf lcdf-typetools
popd
%endif

# allow Xaw3d enabled build of xdvi
%{__sed} -i 's|/Xaw/|/Xaw3d/|' texk/xdvik/gui/*.[ch] texk/xdvik/*.[ch]

## Japanese pTeX
%if %{enable_japanese}
# set platex to Japanese pLaTeX. original one is moved to platex-pl
sed -e s/^platex/platex-pl/g \
    -e s/^pdfplatex/pdfplatex-pl/g \
    -e s/platex\.ini/platex\-pl\.ini/g \
     -i texk/web2c/fmtutil.in

# Prepare pTeX
tar xfz %{SOURCE1000} -C texk/web2c/
cd texk/web2c/ptex-src-%{ptex_src_ver}
sed -i -e  's|/{ptex/{platex,generic,},tex/{latex,generic,}}|/{ptex/platex,{p,}tex/latex,{p,}tex/generic,{p,}tex}|g' -e 's/| uniq//g' mkconf
%patch1004 -p1
%patch1006 -p1
cd -

# Prepare Japanese dvips
mkdir pdvipsk
tar xfj %{SOURCE1001} -C pdvipsk
cp -lR texk/dvipsk texk/pdvipsk
cd pdvipsk
%patch1005 -p0
cd -
patch -d texk/pdvipsk -p1 < pdvipsk/dvipsk-%{pdvipsk_ver}.patch
%patch1000 -p1 -b .pdvips
ln -s dvips.1 texk/pdvipsk/pdvips.1

# set up Japanese xdvi
cp -a texk/xdvik texk/pxdvik

cd texk/pxdvik
%patch1002 -p3
cd -
%patch1003 -p1 -b .pxdvi
mv texk/pxdvik/vfontmap.sample texk/pxdvik/vfontmap.sample.orig
install -p -m 644 %{SOURCE1003} texk/pxdvik/vfontmap.sample

# set up mendexk
tar xfz %{SOURCE1002} -C texk
%endif


%build
set -x
# define CCACHE_DIR to let the build pass with ccache enabled.
export CCACHE_DIR=$HOME/.ccache
unset TEXINPUTS ||:
unset HOME ||:

%{__rm} -r libs/{teckit,obsdcompat}

# Japanese pTeX
%if %{enable_japanese}
for i in texk/xdvik texk/pxdvik texk ; do
  ( cd ${i} ; $RPM_BUILD_DIR/%{name}-%{version}/texk/autoconf2.13 -m $RPM_BUILD_DIR/%{name}-%{version}/texk/etc/autoconf )
done
%endif

%configure \
%if %{default_letter_paper}
        --disable-a4 \
%endif
	--enable-shared=yes \
        --with-system-ncurses \
        --with-system-zlib \
        --with-system-pnglib \
        --with-system-gd \
        --without-system-icu \
	--with-icu-include=%{_includedir}/unicode \
        --with-system-freetype \
	--with-freetype-include=%{_includedir}/freetype \
        --with-system-freetype2 \
	--with-freetype2-include=%{_includedir}/freetype2 \
	--with-system-t1lib \
        --without-texlive \
        --without-t1utils \
        --without-psutils \
        --without-ps2eps \
	--without-pdfopen \
	--without-ttf2pk \
        --disable-multiplatform \
        --without-dialog --without-texinfo --without-texi2html \
        --without-tex4htk \
        --without-detex --without-dvi2tty \
%if %{disable_lcdf_typetools}
        --with-lcdf-typetools=no \
%endif
        --with-mf-x-toolkit=yes \
        --with-xdvi-x-toolkit=xaw3d \
	--without-cxx-runtime-hack

# Remove everything except:
# icu: includes some changes
# md5: the aladdin md5 code (not a library)
%{__rm} -r libs/{curl,expat,freetype,freetype2,gd,howto,jpeg,libgnuw32,libgsw32,libpng,libttf,ncurses,regex,unzip,zlib,type1,t1lib,xpdf}/

# Japanese pTeX
# configure pxdvi with more options
%if %{enable_japanese}
cd texk/pxdvik
sh `grep "# ./con" config.status |sed -e s/^#\ //` --program-prefix=p --with-default-dvips-path=pdvips
cd -
%endif

# %%{?_smp_mflags} does not work in texlive-2007/libs/icu-xetex/common
make

%if %{enable_japanese}
cd texk/web2c/ptex-src-%{ptex_src_ver}
./configure EUC
make
cd -

# mendexk build
cd texk/mendexk%{mendexk_ver}
./configure EUC
make
cd -
%endif


%install
rm -rf %{buildroot}
export CCACHE_DIR=$HOME/.ccache
unset TEXINPUTS || :
unset HOME || :

mkdir -p %{buildroot}%{_texmf_main}
mkdir -p %{buildroot}%{_texmf_var}/web2c
mkdir -p %{buildroot}%{_texmf_conf}

export LD_LIBRARY_PATH=`pwd`/texk/kpathsea/.libs

%makeinstall \
        texmf=%{buildroot}%{_texmf_main} \
        texmfmain=%{buildroot}%{_texmf_main}

# desktop entry things
cat > xdvi.desktop <<EOF
[Desktop Entry]
Encoding=UTF-8
Name=DVI Viewer
Type=Application
Comment=DVI viewer for TeX DVI files
Icon=xdvi
MiniIcon=mini-doc1.xpm
Exec=%{_bindir}/xdvi
MimeType=application/x-dvi
NoDisplay=true
EOF

# remove all .la files
rm -f %{buildroot}%{_infodir}/dir
find %{buildroot} | grep -e "\\.la$" | xargs rm -f

# set executable bit for the library for debuginfo creation
chmod a+x %{buildroot}%{_libdir}/libkpathsea.so.*.*

## remove what is packages in other Fedora packages
# jadetex
rm -f %{buildroot}%{_bindir}/jadetex
rm -f %{buildroot}%{_bindir}/pdfjadetex
# xmltex
rm -f %{buildroot}%{_bindir}/xmltex
rm -f %{buildroot}%{_bindir}/pdfxmltex
# octave-forge
### looks to me like a name clash ?? Octave mex looks like it has nada to
### to with TeX
rm -f %{buildroot}%{_bindir}/mex
### not in octave-forge, nuking anyway
rm -f %{buildroot}%{_bindir}/pdfmex
rm -f %{buildroot}%{_bindir}/utf8mex

# these are owned by texmf-fonts package
rm -f %{buildroot}%{_texmf_main}/ls-R

# keep fmtutil.cnf used for the initial configuration in doc
rm -rf __fedora_kpathsea
mkdir -p __fedora_kpathsea/
mv %{buildroot}%{_texmf_main}/web2c/fmtutil.cnf __fedora_kpathsea/fmtutil.cnf-init

# this file is different from the one in texmf-fonts, since it is 
# the one from kpathsea which isn't specific of texlive. It is only 
# used during build and to set the kpathsea default paths, however.
# Kept as documentation together with paths.h since they describe
# what the kpathsea default paths are
mkdir -p __fedora_kpathsea/kpathsea_defaults
mv %{buildroot}%{_texmf_main}/web2c/texmf.cnf __fedora_kpathsea/kpathsea_defaults/texmf-kpathsea-defaults.cnf
cp texk/kpathsea/paths.h __fedora_kpathsea/kpathsea_defaults

# these are owned by texmf-doc package
rm -rf %{buildroot}%{_texmf_main}/doc/tetex

# install cron file
install -p -D -m755 %{SOURCE10} %{buildroot}%{_sysconfdir}/cron.daily/texlive.cron

# install the xdvi desktop file
mkdir -p %{buildroot}%{_datadir}/{applications,pixmaps}
mkdir -p %{buildroot}%{_datadir}/icons/hicolor/48x48/apps/

install -p  -m644 %{SOURCE30} %{buildroot}%{_datadir}/pixmaps/
install -p  -m644 %{SOURCE30} %{buildroot}%{_datadir}/icons/hicolor/48x48/apps/xdvi.png
desktop-file-install --vendor tetex --delete-original  \
  --dir %{buildroot}%{_datadir}/applications           \
  --add-category Graphics                              \
  xdvi.desktop

# Japanese pTeX
%if %{enable_japanese}
# remove %{buildroot}%{_bindir}/platex
rm -f %{buildroot}%{_bindir}/platex
# Convert documents to UTF-8
mkdir -p %{buildroot}%{_texmf_main}/doc/ptex/ptex-src \
         %{buildroot}%{_texmf_main}/doc/pdvipsk \
         %{buildroot}%{_texmf_main}/doc/pxdvik/READMEs
cd texk/web2c/ptex-src-%{ptex_src_ver}
iconv -f ISO-2022-JP -t UTF-8 \
      COPYRIGHT.jis \
      -o %{buildroot}%{_texmf_main}/doc/ptex/ptex-src/COPYRIGHT-ja
for i in README.txt Changes.txt ; do
  iconv -f EUC-JP -t UTF-8 ${i} \
        -o %{buildroot}%{_texmf_main}/doc/ptex/ptex-src/${i}
done
cd -
cd pdvipsk
for i in ChangeLog.jpatch README.jpatch ; do
  iconv -f EUC-JP -t UTF-8 ${i} -o %{buildroot}%{_texmf_main}/doc/pdvipsk/${i}
done
cd -
cd texk/pxdvik
for i in CHANGES.xdvik-jp README.xdvik-jp READMEs/* ; do
  iconv -f EUC-JP -t UTF-8 ${i} \
        -o  %{buildroot}%{_texmf_main}/doc/pxdvik/${i}
done
cd -

cd texk/web2c/ptex-src-%{ptex_src_ver}
%makeinstall INSTALL="install -p" prefix=%{buildroot}%{_prefix} \
        texmf=%{buildroot}%{_texmf_main} \
        texmfmain=%{buildroot}%{_texmf_main}
# texmf.cnf is prepared by texlive-texmf package.
rm %{buildroot}%{_texmf_main}/web2c/texmf.cnf
cd -

install -p -m 644 texk/pxdvik/vfontmap.sample.orig %{buildroot}%{_datadir}/texmf/doc/pxdvik/vfontmap.sample

# mendexk install
cd texk/mendexk%{mendexk_ver}
install -p -m 755 mendex %{buildroot}%{_bindir}

mkdir -p %{buildroot}%{_mandir}/ja/man1
iconv -f EUC-JP -t UTF-8 mendex.1 -o %{buildroot}%{_mandir}/ja/man1/mendex.1
mkdir -p %{buildroot}%{_datadir}/texmf/doc/mendexk
install -p -m 644 COPYRIGHT ChangeLog %{buildroot}%{_datadir}/texmf/doc/mendexk
iconv -f EUC-JP -t UTF-8 README -o %{buildroot}%{_datadir}/texmf/doc/mendexk/README
iconv -f ISO-2022-JP -t UTF-8 COPYRIGHT.jis -o %{buildroot}%{_datadir}/texmf/doc/mendexk/COPYRIGHT.jis
cd -
%endif

# remove useless files in texconfig
rm -rf %{buildroot}%{_texmf_main}/texconfig/{g,v,x,README,generic}

# remove pool files, they belong to texlive-texmf
rm -rf %{buildroot}%{_texmf_main}/web2c/*.pool

# move the configuration files that should be under user control
mkdir -p %{buildroot}%{_texmf_conf}/{web2c/,dvipdfm/}
mv %{buildroot}%{_texmf_main}/web2c/mktexdir.opt %{buildroot}%{_texmf_conf}/web2c/
mv %{buildroot}%{_texmf_main}/dvipdfm/cid-x.map %{buildroot}%{_texmf_conf}/dvipdfm/

# separated projects
rm %{buildroot}%{_bindir}/devnag
rm %{buildroot}%{_bindir}/afm2pl %{buildroot}%{_mandir}/man1/afm2pl.1*

%clean
rm -rf %{buildroot}

%post
%{_bindir}/texconfig-sys rehash 2> /dev/null || :
%{_bindir}/fmtutil-sys --all > /dev/null 2>&1 || :

%post afm
%{_bindir}/texconfig-sys rehash 2> /dev/null || :

%post dvips
[ -x /sbin/install-info ] && /sbin/install-info %{_infodir}/dvips.info.gz %{_infodir}/dir || :
%{_bindir}/texconfig-sys rehash 2> /dev/null || :

%post dviutils
%{_bindir}/texconfig-sys rehash 2> /dev/null || :

%post fonts
%{_bindir}/texconfig-sys rehash 2> /dev/null || :
[ -x /sbin/install-info ] && /sbin/install-info %{_infodir}/web2c.info.gz %{_infodir}/dir || :
%{_bindir}/updmap-sys --syncwithtrees > /dev/null 2>&1 || :

%post latex
[ -x /sbin/install-info ] && /sbin/install-info %{_infodir}/latex.info.gz %{_infodir}/dir || :
%{_bindir}/texconfig-sys init >/dev/null 2>&1 || :
%{_bindir}/texconfig-sys rehash 2> /dev/null || :
%{_bindir}/fmtutil-sys --all > /dev/null 2>&1 || :

%post -n xdvi
%{_bindir}/texconfig-sys rehash 2> /dev/null || :
%{_bindir}/update-desktop-database %{_datadir}/applications || :
touch --no-create %{_datadir}/icons/hicolor
if [ -x %{_bindir}/gtk-update-icon-cache ]; then
  %{_bindir}/gtk-update-icon-cache --quiet %{_datadir}/icons/hicolor || :
fi

%post -n kpathsea
/sbin/ldconfig
[ -x /sbin/install-info ] && /sbin/install-info %{_infodir}/kpathsea.info.gz %{_infodir}/dir || :

%post -n dvipng
[ -x /sbin/install-info ] && /sbin/install-info %{_infodir}/dvipng.info.gz %{_infodir}/dir || :


%preun dvips
if [ "$1" = 0 ]; then
  [ -x /sbin/install-info ] && /sbin/install-info --delete %{_infodir}/dvips.info.gz %{_infodir}/dir || :
fi

%preun -n dvipng
if [ "$1" = 0 ]; then
  [ -x /sbin/install-info ] && /sbin/install-info --delete %{_infodir}/dvipng.info.gz %{_infodir}/dir || :
fi

%preun latex
if [ "$1" = 0 ]; then
  [ -x /sbin/install-info ] && /sbin/install-info --delete %{_infodir}/latex.info.gz %{_infodir}/dir || :
fi

%preun fonts
if [ "$1" = 0 ]; then
  [ -x /sbin/install-info ] && /sbin/install-info --delete %{_infodir}/web2c.info.gz %{_infodir}/dir || :
fi

%preun -n kpathsea
/sbin/ldconfig
if [ "$1" = 0 ]; then
  [ -x /sbin/install-info ] && /sbin/install-info --delete %{_infodir}/kpathsea.info.gz %{_infodir}/dir || :
fi

%postun
%{_bindir}/texconfig-sys rehash 2> /dev/null || :

%postun afm
%{_bindir}/texconfig-sys rehash 2> /dev/null || :

%postun dvips
%{_bindir}/texconfig-sys rehash 2> /dev/null || :

%postun fonts
%{_bindir}/texconfig-sys rehash 2> /dev/null || :

%postun latex
%{_bindir}/texconfig-sys rehash 2> /dev/null || :

%postun -n xdvi
%{_bindir}/texconfig-sys rehash 2> /dev/null || :
touch --no-create %{_datadir}/icons/hicolor
if [ -x %{_bindir}/gtk-update-icon-cache ]; then
  %{_bindir}/gtk-update-icon-cache --quiet %{_datadir}/icons/hicolor || :
fi

%postun -n kpathsea
/sbin/ldconfig


%files
%defattr(-,root,root,-)
# config files
%dir %{_texmf_conf}
%dir %{_texmf_conf}/web2c
%config(noreplace) %{_texmf_conf}/web2c/mktexdir.opt
%{_bindir}/a2ping
%{_bindir}/aleph
%{_bindir}/amstex
%{_bindir}/bibtex
%{_bindir}/ctangle
%{_bindir}/ctie
%{_bindir}/cweave
# used by makempx
%{_bindir}/dvitomp
%{_bindir}/dmp
%{_bindir}/e2pall
%{_bindir}/epstopdf
%{_bindir}/etex
%{_bindir}/fmtutil
%{_bindir}/fmtutil-sys
%{_bindir}/fontinst
%{_bindir}/kpsewhere
%{_bindir}/lambda
%{_bindir}/lamed
%{_bindir}/makeindex
%{_bindir}/makempx
%{_bindir}/makempy
%{_bindir}/mkindex
%{_bindir}/mkocp
%{_bindir}/mktexfmt
%{_bindir}/mpost
%{_bindir}/mpto
%{_bindir}/mptopdf
%{_bindir}/newer
%{_bindir}/omega
%{_bindir}/otangle
%{_bindir}/patgen
%{_bindir}/pdfcrop
%{_bindir}/pdfetex
%{_bindir}/pdftex
%{_bindir}/pooltype
%{_bindir}/ps2frag
%{_bindir}/ps4pdf
%{_bindir}/rubibtex
%{_bindir}/rumakeindex
%{_bindir}/tangle
%{_bindir}/tex
%{_bindir}/texconfig
%{_bindir}/texconfig-dialog
%{_bindir}/texconfig-sys
%{_bindir}/texdoc
%{_bindir}/texdoctk
%{_bindir}/texexec
%{_bindir}/texfont
%{_bindir}/texlinks
%{_bindir}/texutil
%{_bindir}/thumbpdf
%{_bindir}/tie
%{_bindir}/updmap
%{_bindir}/updmap-sys
%{_bindir}/weave
# new files not in Fedora tetex
%{_bindir}/bibtex8
%{_bindir}/csplain
# separated project
#%{_bindir}/detex
%{_bindir}/mltex
%{_bindir}/pdfcsplain
# not positive these belong here
%{_bindir}/bg5conv
%{_bindir}/cef5conv
%{_bindir}/cefconv
%{_bindir}/cefsconv
# separated project
# %{_bindir}/devnag
%{_bindir}/eplain
%{_bindir}/extconv
%{_bindir}/musixflx
%{_bindir}/physe
%{_bindir}/phyzzx
%{_bindir}/sjisconv
%{_bindir}/texsis
# other utilities
%{_bindir}/ctxtools
%{_bindir}/exatools
%{_bindir}/luatools
%{_bindir}/mpstools
%{_bindir}/mtxtools
%{_bindir}/pdftools
%{_bindir}/pdftosrc
%{_bindir}/pstopdf
%{_bindir}/rlxtools
%{_bindir}/runtools
%{_bindir}/texmfstart
%{_bindir}/textools
%{_bindir}/tmftools
%{_bindir}/xdvipdfmx
%{_bindir}/xetex
%{_bindir}/xmltools
# Japanese pTeX
%if %{enable_japanese}
%{_bindir}/jbibtex
%{_bindir}/ptex
%endif
# man pages
%{_mandir}/man1/amstex.1*
%{_mandir}/man1/bibtex.1*
%{_mandir}/man1/ctangle.1*
%{_mandir}/man1/ctie.1*
%{_mandir}/man1/cweave.1*
%{_mandir}/man1/cweb.1*
%{_mandir}/man1/dvitomp.1*
%{_mandir}/man1/dmp.1*
%{_mandir}/man1/e2pall.1*
%{_mandir}/man1/eplain.1*
%{_mandir}/man1/epstopdf.1*
%{_mandir}/man1/etex.1*
%{_mandir}/man1/fdf2tex.1*
%{_mandir}/man1/fmtutil.1*
%{_mandir}/man1/fmtutil-sys.1*
%{_mandir}/man1/fontinst.1*
%{_mandir}/man1/kpsewhere.1*
%{_mandir}/man1/lambda.1*
%{_mandir}/man1/makeindex.1*
%{_mandir}/man1/makempx.1*
%{_mandir}/man1/makempy.1*
%{_mandir}/man1/mf.1*
%{_mandir}/man1/mf-nowin.1*
%{_mandir}/man1/mkindex.1*
%{_mandir}/man1/mkocp.1*
%{_mandir}/man1/mktexfmt.1*
%{_mandir}/man1/mpost.1*
%{_mandir}/man1/mpto.1*
%{_mandir}/man1/newer.1*
%{_mandir}/man1/omega.1*
%{_mandir}/man1/patgen.1*
%{_mandir}/man1/pdfetex.1*
%{_mandir}/man1/pdftex.1*
%{_mandir}/man1/pooltype.1*
%{_mandir}/man1/ps2frag.1*
%{_mandir}/man1/rubibtex.1*
%{_mandir}/man1/rumakeindex.1*
%{_mandir}/man1/tangle.1*
%{_mandir}/man1/tex.1*
%{_mandir}/man1/texconfig.1*
%{_mandir}/man1/texconfig-sys.1*
%{_mandir}/man1/texdoc.1*
%{_mandir}/man1/texdoctk.1*
%{_mandir}/man1/texexec.1*
%{_mandir}/man1/texfind.1*
%{_mandir}/man1/texfont.1*
%{_mandir}/man1/texlinks.1*
%{_mandir}/man1/texutil.1*
%{_mandir}/man1/thumbpdf.1*
%{_mandir}/man1/tie.1*
%{_mandir}/man1/updmap.1*
%{_mandir}/man1/updmap-sys.1*
%{_mandir}/man1/weave.1*
# new files not in Fedora tetex
# separated project
#%{_mandir}/man1/detex.1*
%{_mandir}/man5/updmap.cfg.*
# man pages for other utilities
%{_mandir}/man1/ctxtools.1*
%{_mandir}/man1/mptopdf.1*
%{_mandir}/man1/pdftools.1*
%{_mandir}/man1/pdftosrc.1*
%{_mandir}/man1/pstopdf.1*
%{_mandir}/man1/texmfstart.1*
%{_mandir}/man1/textools.1*
# Japanese pTeX
%dir %{_texmf_main}/web2c
%{_texmf_main}/texconfig/tcfmgr*
%{_texmf_main}/bibtex/
# Japanese pTeX
%if %{enable_japanese}
%{_texmf_main}/web2c/*.fmt
%endif
%dir %{_texmf_main}/doc
%doc %{_texmf_main}/doc/bibtex8/
# Japanese pTeX
%if %{enable_japanese}
%doc %{_texmf_main}/doc/ptex/
%endif
%dir %{_texmf_var}/web2c/
%doc __fedora_kpathsea/fmtutil.cnf-init

%files afm
%defattr(-,root,root,-)
%{_bindir}/afm2tfm
%{_bindir}/ttf2afm
%{_mandir}/man1/afm2tfm.1*
%{_mandir}/man1/ttf2afm.1*
# not in fedora tetex, but a separate project
#%{_bindir}/afm2pl
#%{_mandir}/man1/afm2pl.1*

%files dvips
%defattr(-,root,root,-)
%{_bindir}/dvi2fax
%{_bindir}/dvips
%{_bindir}/dvired
%{_bindir}/odvips
%{_texmf_main}/dvips/
%{_mandir}/man1/dvi2fax.1*
%{_mandir}/man1/dvips.1*
%{_mandir}/man1/dvired.1*
%{_mandir}/man1/odvips.1*
%{_infodir}/dvips.info.*
# Japanese pTeX
%if %{enable_japanese}
%{_bindir}/pdvips
%{_bindir}/opdvips
%{_bindir}/pdvitype
%{_texmf_main}/pdvips/
%{_texmf_main}/fonts/map/pdvips/
%{_mandir}/man1/pdvips.1*
%{_mandir}/man1/opdvips.1*
%doc %{_texmf_main}/doc/pdvipsk/
%endif

%files dviutils
%defattr(-,root,root,-)
# separated project (dvi2tty)
#%{_bindir}/disdvi
%{_bindir}/dt2dv
%{_bindir}/dv2dt
# separated project (dvi2tty)
#%{_bindir}/dvi2tty
%{_bindir}/dvicopy
%{_bindir}/dvihp
%{_bindir}/dvitype
%{_bindir}/dvibook
%{_bindir}/dviconcat
%{_bindir}/dvidvi
%{_bindir}/dvilj
%{_bindir}/dvilj2p
%{_bindir}/dvilj4
%{_bindir}/dvilj4l
%{_bindir}/dvilj6
%{_bindir}/dvipos
%{_bindir}/dviselect
%{_bindir}/dvitodvi
%{_bindir}/odvicopy
%{_bindir}/odvitype
%{_mandir}/man1/dvicopy.1*
%{_mandir}/man1/dvihp.1*
%{_mandir}/man1/dvitype.1*
%{_mandir}/man1/dt2dv.1*
%{_mandir}/man1/dv2dt.1*
# separated project (dvi2tty)
#%{_mandir}/man1/dvi2tty.1*
%{_mandir}/man1/dvibook.1*
%{_mandir}/man1/dviconcat.1*
%{_mandir}/man1/dvidvi.1*
%{_mandir}/man1/dvilj.1*
%{_mandir}/man1/dvilj2p.1*
%{_mandir}/man1/dvilj4.1*
%{_mandir}/man1/dvilj4l.1*
%{_mandir}/man1/dvilj6.1*
%{_mandir}/man1/dvipos.1*
%{_mandir}/man1/dviselect.1*
%{_mandir}/man1/dvitodvi.1*
%{_mandir}/man1/odvicopy.1*
%{_mandir}/man1/odvitype.1*

%files fonts
%defattr(-,root,root,-)
%{_bindir}/allcm
%{_bindir}/allec
%{_bindir}/allneeded
%{_bindir}/gftodvi
%{_bindir}/gftopk
%{_bindir}/gftype
%{_bindir}/gsftopk
%{_bindir}/kpseaccess
%{_bindir}/kpsepath
%{_bindir}/kpsereadlink
%{_bindir}/kpsestat
%{_bindir}/kpsewhich
%{_bindir}/kpsexpand
%{_bindir}/kpsetool
%{_bindir}/mag
%{_bindir}/mf
%{_bindir}/mf-nowin
%{_bindir}/mft
%{_bindir}/mkofm
%{_bindir}/mktexlsr
%{_bindir}/mktexmf
%{_bindir}/mktexpk
%{_bindir}/mktextfm
%{_bindir}/ofm2opl
%{_bindir}/omfonts
%{_bindir}/opl2ofm
%{_bindir}/otp2ocp
%{_bindir}/outocp
%{_bindir}/ovf2ovp
%{_bindir}/ovp2ovf
%{_bindir}/pfb2pfa
%{_bindir}/pk2bm
%{_bindir}/pktogf
%{_bindir}/pktype
%{_bindir}/pltotf
%{_bindir}/ps2pk
%{_bindir}/texhash
%{_bindir}/tftopl
%{_bindir}/vftovp
%{_bindir}/vptovf
# new files (not in fedora tetex)
%{_bindir}/hbf2gf
# man pages
%{_mandir}/man1/allcm.1*
%{_mandir}/man1/allec.1*
%{_mandir}/man1/allneeded.1*
%{_mandir}/man1/gftodvi.1*
%{_mandir}/man1/gftopk.1*
%{_mandir}/man1/gftype.1*
%{_mandir}/man1/gsftopk.1*
%{_mandir}/man1/kpseaccess.1*
%{_mandir}/man1/kpsepath.1*
%{_mandir}/man1/kpsereadlink.1*
%{_mandir}/man1/kpsestat.1*
%{_mandir}/man1/kpsetool.1*
%{_mandir}/man1/kpsewhich.1*
%{_mandir}/man1/kpsexpand.1*
%{_mandir}/man1/mag.1*
%{_mandir}/man1/mft.1*
%{_mandir}/man1/mkofm.1*
%{_mandir}/man1/mktexlsr.1*
%{_mandir}/man1/mktexmf.1*
%{_mandir}/man1/mktexpk.1*
%{_mandir}/man1/mktextfm.1*
%{_mandir}/man1/ofm2opl.1*
%{_mandir}/man1/opl2ofm.1*
%{_mandir}/man1/otp2ocp.1*
%{_mandir}/man1/outocp.1*
%{_mandir}/man1/ovf2ovp.1*
%{_mandir}/man1/ovp2ovf.1*
%{_mandir}/man1/pfb2pfa.1*
%{_mandir}/man1/pk2bm.1*
%{_mandir}/man1/pktogf.1*
%{_mandir}/man1/pktype.1*
%{_mandir}/man1/pltotf.1*
%{_mandir}/man1/ps2pk.1*
%{_mandir}/man1/texhash.1*
%{_mandir}/man1/tftopl.1*
%{_mandir}/man1/vftovp.1*
%{_mandir}/man1/vptovf.1*
%{_mandir}/man5/fmtutil.cnf.5*
# man pages for new files (not in Fedora tetex)
%{_mandir}/man1/hbf2gf.1*
# other stuff
%{_sysconfdir}/cron.daily/texlive.cron
%{_infodir}/web2c.info.*
%{_texmf_main}/web2c/*.opt
%{_texmf_main}/web2c/mktexdir
%{_texmf_main}/web2c/mktexnam
%{_texmf_main}/web2c/mktexupd

%files latex
%defattr(-,root,root,-)
%{_bindir}/latex
%{_bindir}/pdflatex
%{_bindir}/xelatex
%if %{enable_japanese}
%{_bindir}/platex-pl
%else
%{_bindir}/platex
%endif
%{_bindir}/pslatex
%{_mandir}/man1/latex.1*
%{_mandir}/man1/pdflatex.1*
%{_mandir}/man1/pslatex.1*
%{_infodir}/latex.info.*
# not in fedora tetex
%{_bindir}/bg5+latex
%{_bindir}/bg5+pdflatex
%{_bindir}/bg5latex
%{_bindir}/bg5pdflatex
%{_bindir}/cef5latex
%{_bindir}/cef5pdflatex
%{_bindir}/ceflatex
%{_bindir}/cefpdflatex
%{_bindir}/cefslatex
%{_bindir}/cefspdflatex
%{_bindir}/cslatex
%{_bindir}/gbklatex
%{_bindir}/gbkpdflatex
%{_bindir}/lacheck
%{_bindir}/mllatex
%{_bindir}/pdfcslatex
%if %{enable_japanese}
%{_bindir}/pdfplatex-pl
%else
%{_bindir}/pdfplatex
%endif
%{_bindir}/sjislatex
%{_bindir}/sjispdflatex
%{_mandir}/man1/lacheck.1*
# Japanese pTeX
%if %{enable_japanese}
%{_bindir}/platex
%{_bindir}/platex209
%endif

%files -n xdvi
%defattr(-,root,root,-)
%{_bindir}/oxdvi
%{_bindir}/xdvi
%{_bindir}/xdvizilla
%{_bindir}/xdvi-xaw3d.bin
%{_texmf_main}/xdvi/
%{_mandir}/man1/oxdvi.1*
%{_mandir}/man1/xdvi.1*
%{_mandir}/man1/xdvizilla.1*
%{_datadir}/pixmaps/xdvi48x48.png
%{_datadir}/icons/hicolor/48x48/apps/xdvi.png
%{_datadir}/applications/tetex-xdvi.desktop
# Japanese pTeX
%if %{enable_japanese}
%{_bindir}/opxdvi
%{_bindir}/pxdvi
%{_bindir}/pxdvizilla
%{_bindir}/pxdvi-xaw3d.bin
%{_texmf_main}/pxdvi/
%doc %{_texmf_main}/doc/pxdvik/
%endif

%files -n kpathsea
%defattr(-,root,root,-)
%{_libdir}/libkpathsea.so.*
%{_infodir}/kpathsea.info.*
%doc __fedora_kpathsea/kpathsea_defaults/

%files -n kpathsea-devel
%defattr(-,root,root,-)
%{_includedir}/kpathsea/
%{_libdir}/libkpathsea.so
# yes - packaging the static too. Some programs apparently can't link
#  against the shared. I can't name any, but so i hear.
%{_libdir}/libkpathsea.a

%files -n dvipng
%defattr(-,root,root,-)
%{_bindir}/dvipng
%{_mandir}/man1/dvipng.1*
%{_infodir}/dvipng.info*

%files -n mendexk
%defattr(-,root,root,-)
%if %{enable_japanese}
%{_bindir}/mendex
%{_mandir}/ja/man1/mendex.1*
%doc %{_texmf_main}/doc/mendexk/
%endif

%files -n dvipdfm
%defattr(-,root,root,-)
%{_bindir}/ebb
%{_bindir}/dvipdfm
%{_bindir}/dvipdft
%{_mandir}/man1/ebb.1*
%{_mandir}/man1/dvipdfm.1*
%{_mandir}/man1/dvipdft.1*

%files -n dvipdfmx
%doc texk/dvipdfmx/AUTHORS texk/dvipdfmx/ChangeLog 
%doc texk/dvipdfmx/COPYING texk/dvipdfmx/README
%dir %{_texmf_conf}/dvipdfm/
%config(noreplace) %{_texmf_conf}/dvipdfm/cid-x.map
%{_bindir}/dvipdfmx
%{_texmf_main}/dvipdfm/

%changelog
* Fri Nov 30 2007 Jindrich Novy <jnovy at redhat.com> - 2007-0.17
- add .gz suffix to info pages so that they gets successfully
  removed in preun phase

* Thu Nov 29 2007 Jindrich Novy <jnovy at redhat.com> - 2007-0.16
- drop Requires: poppler
- require texlive-fonts in kpathsea
- replace htmlview by xdg-open

* Fri Nov 16 2007 Jindrich Novy <jnovy at redhat.com> - 2007-0.15
- fix t1lib flaw CVE-2007-4033 (#352271)
- fix CVE-2007-4352 CVE-2007-5392 CVE-2007-5393, various xpdf flaws (#345121)
- xdvi won't segfault if DVI file contains character which
  is not present in font (#243630)
- fix dvips -z buffer overflow with long href (#368591)
- fix insecure usage of temporary file in dviljk (#368611, #368641)
- link against poppler, not internal xpdf
- include arabtex

* Tue Oct 16 2007 Jindrich Novy <jnovy at redhat.com> - 2007-0.14
- xdvi won't segfault if DVI file contains character which
  is not present in font (#243630)

* Wed Sep 19 2007 Jindrich Novy <jnovy at redhat.com> - 2007-0.13
- update ls-Rs to deal with the japanese support
- update ptex to 3.1.10 and mendex to 2.6e
- fix install-info in scriptlets

* Tue Sep 18 2007 Patrice Dumas <pertusus at free.fr>
- subpackage packages that have a distinct upstream
- remove non free parts from the archive
- install xdvi icon in hicolor directory

* Thu Aug 30 2007 Jindrich Novy <jnovy at redhat.com> - 2007-0.12
- update description
- BR ruby, don't obsolete tetex-tex4ht
- remove license problematic/useless stuff, based on email from Karl Berry
- move vfont.sample to doc
- preserve timestamps
- shuffle binaries between texlive and texlive-fonts, update scriptlets

* Mon Aug 27 2007 Jindrich Novy <jnovy at redhat.com> - 2007-0.11
- BR gawk, ghostscript
- incorporate path fixes by Patrice Dumas
- change in the kpathsea default paths
- don't BR the *-texmf
- ship kpathsea defaults as documentation
- disable build of ps2eps at configuration time

* Wed Aug 22 2007 MATSUURA Takanori <t.matsuu at gmail.com> - 2007-0.10.1
- add Japanese pTeX
- Polish platex and pdfplatex are moved to platex-pl and
  pdfplatex respectively

* Sat Aug 18 2007 Jindrich Novy <jnovy at redhat.com> - 2007-0.10
- update License tag to licenses used in TeXLive sources
- remove ps2eps, it's a separate package
- don't remove updmap.cfg in post phase
- fix provides/obsoletes
- tetex.cron -> texlive.cron
- review fixes thanks to Patrice Dumas:
- remove .gz from installing info in scriptlets
- remove useless comments, lesstif/lesstif-devel requires
- remove X-Red-Hat-Extra category from xdvi.desktop
- update texlive-texdoc.patch
- require xdg-utils, htmlview, don't require bison, flex, ed

* Tue Aug 14 2007 Jindrich Novy <jnovy at redhat.com> - 2007-0.9
- update internal xpdf to 3.02 from upstream to fix CVE-2007-3387
- don't link statically with libstdc++
- put xdvi.xaw3d to texlive-xdvi instead of main package

* Tue Aug 07 2007 Jindrich Novy <jnovy at redhat.com> - 2007-0.8
- xdvi now compiles with Xaw3d support on i386

* Tue Jul 24 2007 Jindrich Novy <jnovy at redhat.com> - 2007-0.7
- obsolete tetex

* Wed Jul 18 2007 Jindrich Novy <jnovy at redhat.com> - 2007-0.6
- bump release to sync with texlive-texmf package changes

* Tue Jul 10 2007 Jindrich Novy <jnovy at redhat.com> - 2007-0.5
- separate kpathsea from texlive-fonts
- update filelists
- incorporate fixes from David Walluck (Mandriva, Debian, SuSE patches, etc.)
- link against system freetype2/t1lib
- remove kpathsea library building hacks
- disable ttf2pk, don't link against type1
- fix perl requires

* Tue Jun 26 2007 Jindrich Novy <jnovy at redhat.com> - 2007-0.4
- reintroduce the texlive-errata scheme
- update filelist
- cleanup patches

* Mon Jun 04 2007 Jindrich Novy <jnovy at redhat.com> - 2007-0.3
- use $TEXMFDOCS instead of $TEXMF/doc in texdoc (#232769)

* Fri Jun 01 2007 Jindrich Novy <jnovy at redhat.com> - 2007-0.2
- update to TeXLive 2007 final
- remove texlive-errata dependencies
- don't use dates in upstream tarball names
- fix invalid freetype libraries location
- disable broken parallel build
- move filelists back to the spec

* Mon Feb 12 2007 Jindrich Novy <jnovy at redhat.com> - 2007-0.1
- update to TeXLive 2007 rc

* Wed May 31 2006 Michael A. Peters <mpeters at mac.com> - 2005-0.9
- missing BuildRequires added (desktop-file-utils) - doh!

* Tue May 30 2006 Michael A. Peters <mpeters at mac.com> - 2005-0.8
- fixed some directory ownership issues.
- added icon for xdvi so I can install the desktop file

* Mon May 29 2006 Michael A. Peters <mpeters at mac.com> - 2005-0.7
- first attempt at mock build (in fc5)

* Sun May 28 2006 Michael A. Peters <mpeters at mac.com> - 2005-0.6
- ghost the texmf-var/web2c/*.{log,fmt,mem} files and create them
- during post install

* Sun May 28 2006 Michael A. Peters <mpeters at mac.com> - 2005-0.5
- The main package needs to require the fonts package

* Sat May 27 2006 Michael A. Peters <mpeters at mac.com> - 2005-0.4
- Patch 8 and Patch 19

* Sat May 27 2006 Michael A. Peters <mpeters at mac.com> - 2005-0.3
- renamed to texjive

* Wed May 24 2006 Michael A. Peters <mpeters at mac.com> - 2005-0.2
- apply Fedora/Red Hat patches (except fot japanese)
- port patches as needed
-- Some of the scripts not patched have same tmpdir issue as the
-- badscript patch fixes - so a second badscript patch IS still needed
- build shared libkpathsea

* Wed May 24 2006 Michael A. Peters <mpeters at mac.com> - 2005-0.1
- Initial attempt at something that resembles packaging.
-- Red Hat / Fedora specific patches from tetex not carried over yet
-- probably some regression


--- NEW FILE vfontmap ---
%
% Sample "vfontmap"
%

% [single style]
% "tfm" "enc" "font"

% [multi style]
% "/font/file/name"
%    "tfm1" "enc"
%    "tfm2" "enc"

% "enc" is one of following.
% "JIS-H" "Unicode-H" "Identity-H"
% "JIS-V" "Unicode-V" "Identity-V"

rml		JIS-H		/usr/share/fonts/japanese/TrueType/sazanami-mincho.ttf
rmlv		JIS-V		/usr/share/fonts/japanese/TrueType/sazanami-mincho.ttf
gbm		JIS-H		/usr/share/fonts/japanese/TrueType/sazanami-gothic.ttf
gbmv		JIS-V		/usr/share/fonts/japanese/TrueType/sazanami-gothic.ttf
fmin		JIS-H		/usr/share/fonts/japanese/TrueType/sazanami-mincho.ttf
fgoth		JIS-H		/usr/share/fonts/japanese/TrueType/sazanami-gothic.ttf
maru		JIS-H		/usr/local/share/texmf/dvipdfm/CIDFont/HiraMaruPro-W4.otf


% UTF package
unijmin-h	Unicode-H	/usr/share/fonts/japanese/TrueType/sazanami-mincho.ttf	% \UTF font
unijmin-v	Unicode-V	/usr/share/fonts/japanese/TrueType/sazanami-mincho.ttf	% \UTF font
cidmin-h	Identity-H	/usr/share/fonts/japanese/TrueType/sazanami-mincho.ttf	% \CID font
cidmin-v	Identity-V	/usr/share/fonts/japanese/TrueType/sazanami-mincho.ttf	% \CID font
hmr		JIS-H		/usr/share/fonts/japanese/TrueType/sazanami-mincho.ttf
hmrv		JIS-V		/usr/share/fonts/japanese/TrueType/sazanami-mincho.ttf

unijgoth-h	Unicode-H	/usr/share/fonts/japanese/TrueType/sazanami-gothic.ttf	% \UTF font
unijgoth-v	Unicode-V	/usr/share/fonts/japanese/TrueType/sazanami-gothic.ttf	% \UTF font
cidgoth-h	Identity-H	/usr/share/fonts/japanese/TrueType/sazanami-gothic.ttf	% \CID font
cidgoth-v	Identity-V	/usr/share/fonts/japanese/TrueType/sazanami-gothic.ttf	% \CID font
hkb		JIS-H		/usr/share/fonts/japanese/TrueType/sazanami-gothic.ttf
hkbv		JIS-V		/usr/share/fonts/japanese/TrueType/sazanami-gothic.ttf


% OTF package
otf-ujmr-h	Unicode-H	/usr/share/fonts/japanese/TrueType/sazanami-mincho.ttf
otf-ujmr-v	Unicode-V	/usr/share/fonts/japanese/TrueType/sazanami-mincho.ttf
otf-cjmr-h	Identity-H	/usr/share/fonts/japanese/TrueType/sazanami-mincho.ttf
otf-cjmr-v	Identity-V	/usr/share/fonts/japanese/TrueType/sazanami-mincho.ttf
hminr-h		JIS-H		/usr/share/fonts/japanese/TrueType/sazanami-mincho.ttf
hminr-v		JIS-V		/usr/share/fonts/japanese/TrueType/sazanami-mincho.ttf

otf-ujgr-h	Unicode-H	/usr/share/fonts/japanese/TrueType/sazanami-gothic.ttf
otf-ujgr-v	Unicode-V	/usr/share/fonts/japanese/TrueType/sazanami-gothic.ttf
otf-cjgr-h	Identity-H	/usr/share/fonts/japanese/TrueType/sazanami-gothic.ttf
otf-cjgr-v	Identity-V	/usr/share/fonts/japanese/TrueType/sazanami-gothic.ttf
hgothr-h	JIS-H		/usr/share/fonts/japanese/TrueType/sazanami-gothic.ttf
hgothr-v	JIS-V		/usr/share/fonts/japanese/TrueType/sazanami-gothic.ttf

otf-ujmb-h	Unicode-H	/usr/share/fonts/japanese/TrueType/sazanami-mincho.ttf
otf-ujmb-v	Unicode-V	/usr/share/fonts/japanese/TrueType/sazanami-mincho.ttf
otf-cjmb-h	Identity-H	/usr/share/fonts/japanese/TrueType/sazanami-mincho.ttf
otf-cjmb-v	Identity-V	/usr/share/fonts/japanese/TrueType/sazanami-mincho.ttf
hminb-h		JIS-H		/usr/share/fonts/japanese/TrueType/sazanami-mincho.ttf
hminb-v		JIS-V		/usr/share/fonts/japanese/TrueType/sazanami-mincho.ttf

otf-ujgb-h	Unicode-H	/usr/share/fonts/japanese/TrueType/sazanami-gothic.ttf
otf-ujgb-v	Unicode-V	/usr/share/fonts/japanese/TrueType/sazanami-gothic.ttf
otf-cjgb-h	Identity-H	/usr/share/fonts/japanese/TrueType/sazanami-gothic.ttf
otf-cjgb-v	Identity-V	/usr/share/fonts/japanese/TrueType/sazanami-gothic.ttf
hgothb-h	JIS-H		/usr/share/fonts/japanese/TrueType/sazanami-gothic.ttf
hgothb-v	JIS-V		/usr/share/fonts/japanese/TrueType/sazanami-gothic.ttf

otf-ujmgr-h	Unicode-H	/usr/local/share/texmf/dvipdfm/CIDFont/HiraMaruPro-W4.otf
otf-ujmgr-v	Unicode-V	/usr/local/share/texmf/dvipdfm/CIDFont/HiraMaruPro-W4.otf
otf-cjmgr-h	Identity-H	/usr/local/share/texmf/dvipdfm/CIDFont/HiraMaruPro-W4.otf
otf-cjmgr-v	Identity-V	/usr/local/share/texmf/dvipdfm/CIDFont/HiraMaruPro-W4.otf
hmgothr-h	JIS-H		/usr/local/share/texmf/dvipdfm/CIDFont/HiraMaruPro-W4.otf
hmgothr-v	JIS-V		/usr/local/share/texmf/dvipdfm/CIDFont/HiraMaruPro-W4.otf

otf-utmr-h	Unicode-H	/usr/share/fonts/chinese/TrueType/uming.ttf
otf-utmr-v	Unicode-V	/usr/share/fonts/chinese/TrueType/uming.ttf

otf-utgr-h	Unicode-H	/usr/share/fonts/chinese/TrueType/ukai.ttf
otf-utgr-v	Unicode-V	/usr/share/fonts/chinese/TrueType/ukai.ttf

otf-ucmr-h	Unicode-H	/usr/share/fonts/chinese/TrueType/uming.ttf
otf-ucmr-v	Unicode-V	/usr/share/fonts/chinese/TrueType/uming.ttf

otf-ucgr-h	Unicode-H	/usr/share/fonts/chinese/TrueType/ukai.ttf
otf-ucgr-v	Unicode-V	/usr/share/fonts/chinese/TrueType/ukai.ttf

otf-ukmr-h	Unicode-H	/usr/share/fonts/korean/TrueType/batang.ttf
otf-ukmr-v	Unicode-V	/usr/share/fonts/korean/TrueType/batang.ttf

otf-ukgr-h	Unicode-H	/usr/share/fonts/korean/TrueType/dotum.ttf
otf-ukgr-v	Unicode-V	/usr/share/fonts/korean/TrueType/dotum.ttf

xdvik-22.84.10-j1.34.patch:

--- NEW FILE xdvik-22.84.10-j1.34.patch ---
diff -N texk/xdvik/CHANGES.xdvik-jp
--- xdvik-22.84.10.orig/texk/xdvik/CHANGES.xdvik-jp	1 Jan 1970 00:00:00 -0000
+++ xdvik-22.84.10/texk/xdvik/CHANGES.xdvik-jp	8 Nov 2006 05:46:05 -0000	1.108
@@ -0,0 +1,590 @@
+2006-11-08  Nobuyuki Tsuchimura  <tutimura(a)nn.iij4u.or.jp>
+
+	* ft2.c, ft2.h, Makefile.in, vfontmap.c, xdvi.c, zeit.c:
+	Renamed "vf2ft.{c,h}" -> "ft2.{c,h}".
+
+	* version.h (JPVERSION): new version j1.34.
+
+2006-11-06  Nobuyuki Tsuchimura  <tutimura(a)nn.iij4u.or.jp>
+
+	* ft2vert.c (ft2vert_init): Added a detailed message
+	when FreeType2 can not handle GSUB table.
+
+	* chardef.h: Removed chardef.h which is not used.
+
+	* zeit.c (read_ZEIT_char):
+	Use struct 'glyph' mainly instead of struct 'bitmap'.
+	(read_ZEIT_index): Renamed 'j' to 'jfm'.
+	Use struct 'glyph' mainly instead of struct 'bitmap'.
+
+	* jfm.c (read_jfm): Replaced a chained pointer of struct 'jfm'
+	by an array of struct.
+	* vfontmap.c: Replaced a chained pointer of struct 'vfontmap'
+	by an array of struct.
+
+	* vfontmap.h, vfontmap.c, vf2ft.c (vfontmap):
+	Renamed 'fd' to 'ft2_index' in struct 'vfontmap'.
+	* dvi-init.h, zeit.c (font):
+	Renamed 'vf' to 'ft2_index' in struct 'font'.
+
+2006-11-05  Nobuyuki Tsuchimura  <tutimura(a)nn.iij4u.or.jp>
+
+	* vf2ft.c (glyph_index, glyph_to_bitmap):
+	Separated glyph_index() and glyph_to_bitmap() from VF_GetBitmap().
+	(VF_OpenFont, VF_GetBitmap): Enabled Bold/Italic font.
+	* vfontmap.c (addfontmap): Initialized 'variant' field.
+
+	* dnpzeit.c, Makefile.in: Removed dnpzeit.c.
+	* dvi-draw.c, dvi-init.c, dvi-init.h, font-open.c, vfontmap.c,
+	vfontmap.h, xdvi-config.h, zeit.h: Removed NTTZEIT macro.
+	* README.xdvik-jp: Added an announcement that NTT JTeX (direct)
+	 support was removed.
+
+	* vf2ft.c, vf2ft.h, xdvi.c, zeit.c (ft2_init, ft2_open_font,
+	ft2_get_bitmap): Renamed VF_Init() -> ft2_init(), etc.
+	Removed needless args. Let ft2_init() static.
+	* vf2ft.c (glyph_to_bitmap): Enhanced glyph_to_bitmap()
+	to fix memory leak.
+	(ft_fonts): 'ft_fonts' became an array of flexible length instead
+	of fixed length.
+	(ft_error): 'ft_error' became a locale variable.
+	(glyph_index): Simplified glyph_index().
+
+	* zeit.c, zeit.h (open_ZEIT_font, get_ZEIT_font):
+	Removed needless func open_ZEIT_font() and get_ZEIT_font().
+	Replaced xmalloc() + memset() with xcalloc().
+
+2006-06-09  Nobuyuki Tsuchimura  <tutimura(a)nn.iij4u.or.jp>
+
+	* jisx0208.c (MAXJIS, jis2uni_table): Deleted category
+	85--92 which is out of JIS X 0208.
+	* util.c, util.h, zeit.c, dnpzeit.c (order_reverse_bitmap):
+	Renamed from reverse_endian_bitmap(). In fact, this is not
+	endian problem.
+
+2006-05-17  Nobuyuki Tsuchimura  <tutimura(a)nn.iij4u.or.jp>
+
+	* configure.in, configure (freetype):
+	Added a message when freetype is found.
+
+	* font-open.c (font_open): Fixed memory leak.
+	We must check iskanjifont() first.
+
+2006-05-09  Nobuyuki Tsuchimura  <tutimura(a)nn.iij4u.or.jp>
+
+	* encodings.c (guess_encoding): Added support for
+	ENC_UNICODE_{H|V}.
+
+	* events.c (do_sigpoll): Cleared allocated memory
+	to avoid ill condition jump.
+	Upstreamed as Request ID 1484561.
+
+2006-05-04  Nobuyuki Tsuchimura  <tutimura(a)nn.iij4u.or.jp>
+
+	* dvi-draw.c (free_bitmap2): Removed free_bitmap2()
+	which leaks memory.
+	* dvi-init.c, dvi-init.h (free_bitmap2):
+	New function derived from delete_glyphs().
+	* ft2vert.c (ft2vert_init): Fixed memory leak.
+
+	* vfontmap.c, vfontmap.h (getdnpfont, isdnpfont):
+	Surround with #ifdef NTTZEIT.
+	* font-open.c (font_open): Added #ifdef NTTZEIT condition.
+
+2006-05-03  Nobuyuki Tsuchimura  <tutimura(a)nn.iij4u.or.jp>
+
+	* zeit.c, zeit.h, dnpzeit.c, util.c, util.h:
+	Moved adj_ZEIT_bitmap() in 'zeit.c' as
+	reverse_endian_bitmap() in 'util.c'.
+	* dnpzeit.c: K&R -> ANSI prototype. Removed 'register'.
+	(read_NTT_char, read_NTT_char): int -> wide_ubyte ch.
+
+	* ft2vert.c (print_offset, tag_to_string, hex_dump):
+	Surround debug part with #ifdef DEBUG .. #endif.
+
+2006-05-01  Nobuyuki Tsuchimura  <tutimura(a)nn.iij4u.or.jp>
+
+	* jfm.h, zeit.c, Makefile.in: Renamed 'jtfm.h' -> 'jfm.h'.
+	* jfm.c, zeit.c (read_jfm, read_jfm0): Moved from 'zeit.c'
+	to new file 'jfm.c'.
+	* jfm.h (read_jfm0): Removed definition of internal function.
+	* jfm.h, jfm.c (jfm): Changed member variable from fn[128] to
+	*fontname.
+	* version.h (JPVERSION): new version j1.33.
+
+2006-04-29  Nobuyuki Tsuchimura  <tutimura(a)nn.iij4u.or.jp>
+
+	* zeit.c (adj_ZEIT_bitmap): Makeing reverse_byte[]
+	by calculation instead of giving as data.
+
+2006-04-28  Nobuyuki Tsuchimura  <tutimura(a)nn.iij4u.or.jp>
+
+	* zeit.c, dnpzeit.c: Use memset() instead of bzero().
+	* zeit.c, zeit.h: Adjusted under DEBUGZEIT condition.
+	* vf2ft.c, encodings.c, dvi-draw.c, vfontmap.h:
+	Converted space -> tab.
+	* vf2ft.c, vf2ft.h, ft2vert.c: Adjusted #include headers.
+	* vfontmap.c, encodings.c: Adjusted #ifdef KANJI condition.
+	* jisx0208.c: Added #ifdef USE_ZEIT condition.
+	* dvi-draw.c: K&R -> ANSI prototype.
+	* Makefile.in: Modified dependency of headers.
+
+2006-04-27  Nobuyuki Tsuchimura  <tutimura(a)nn.iij4u.or.jp>
+
+	* vfontmap.c, vfontmap.h (first_ptr): Let 'first_ptr' private
+	variable.
+	* vfontmap.c, vfontmap.h, zeit.c, dnpzeit.c
+	(getkanjifont, getdnpfont): Renamed iskanjifont() to
+	getkanjifont() and changed its return value to the pointer of
+	structure 'vfontmap' instead of the index number.
+	Defined iskanjifont() as a macro using getkanjifont().
+	* zeit.c, zeit.h (open_ZEIT_font): Changed arg to pointer
+	instead of index number.
+
+2006-04-26  Nobuyuki Tsuchimura  <tutimura(a)nn.iij4u.or.jp>
+
+	* dvi-init.c, dvi-init.h, dnpzeit.c, encodings.c, font-open.c,
+	vfontmap.c, vfontmap.h, xdvi.c, Makefile.in (iskanjifont, isdnpfont):
+	Moved iskanjifont() and isdnpfont() from dvi-init.c to
+	vfontmap.c.
+	* ft2vert.h: Removed useless comment.
+	* ft2vert.c: Added '#ifdef USE_ZEIT' condition.
+	Converted space -> tab.
+
+2006-04-25  Nobuyuki Tsuchimura  <tutimura(a)nn.iij4u.or.jp>
+
+	* dvi-draw.c (oldmaxchar): Enlarged 'oldmaxchar' from ubyte
+	to wide_ubyte to save whole 'maxchar'.
+	This fixes a string search trouble for Japanese characters.
+	(upstreamed as Request ID 1475921)
+
+2006-04-19  Nobuyuki Tsuchimura  <tutimura(a)nn.iij4u.or.jp>
+
+	* jisx0208.c, jisx0208.h, Mailefile.in (jisx0208): New file derived
+	from "src/VF_Ftype.c" in VFlib2-2.25.6.
+	* vf2ft.c (UnicodeTbl, jis2uni): Removed jis2uni() which overlaps
+	in jisx0208.c.
+	* ft2vert.c (ft2vert_get_gid): Fixed typo in error message.
+
+2005-11-21  Nobuyuki Tsuchimura  <tutimura(a)nn.iij4u.or.jp>
+
+	* dvi-draw.c (bbox_scale_bitmap, rotate_bitmap,
+	reverse_rotate_bitmap):	Reduced "#ifdef WORDS_BIGENDIAN .. #endif"
+	by using new macros EXTREME_LEFT_BIT, EXTREME_RIGHT_BIT,
+	and SHIFT_RIGHT().
+
+2005-11-19  Nobuyuki Tsuchimura  <tutimura(a)nn.iij4u.or.jp>
+
+	* vf2ft.c (VF_GetBitmap): Clean bitmap earlier.
+	* util.c, utl.h (clear_bitmap, fill_bitmap): new function
+	* zeit.c (read_ZEIT_index): Use fill_bitmap() instead of bbox().
+	* dvi-draw.c (reverse_rotate_bitmap, rotate_bitmap,
+	bbox_scale_bitmap): Use clear_bitmap().
+	(rotate_bitmap, reverse_rotate_bitmap): K&R -> ANSI prototype.
+
+2005-11-17  Nobuyuki Tsuchimura  <tutimura(a)nn.iij4u.or.jp>
+
+	* gui/help-window.c (default_help_general): Removed VF2FT macro.
+
+2005-11-16  Nobuyuki Tsuchimura  <tutimura(a)nn.iij4u.or.jp>
+
+	* zeit.c: Converted K&R -> ANSI prototype.
+	(adj_ZEIT_bitmap): Simplified using new macro MAKE32BIT().
+	* zeit.h, jtfm.h (read_jfm0): Moved prototype.
+	* dvi-init.h (TateCorrectionTable): Removed tate adjustment.
+
[...10335 lines suppressed...]
+  ¤È¤¤¤¦Ìõ¤Ç¡¢DVISEL ¤ò define ¤¹¤ë¤È¡¢¾åµ­ dviselect µ¡Ç½¤òÆâÊñ¤·¡¢³°Éô
+¥¹¥¯¥ê¥×¥È(¥Ç¥Õ¥©¥ë¥È¤Ï /usr/local/bin/xdviprint¡£-xdviprint ¥ª¥×¥·¥ç¥ó¤ä
+.xdviPrint ¥ê¥½¡¼¥¹¤Ç¤âÊѹ¹²Ä)¤ËÀÚ¤ê½Ð¤·¤¿ DVI ¥Õ¥¡¥¤¥ë¤ò¥Ñ¥¤¥×¤ÇÅϤ¹¤è¤¦
+¤Ë¤Ê¤ê¤Þ¤¹¡£¥×¥ê¥ó¥¿Ì¾¤È»æ¤Î¥µ¥¤¥º¤Ï°ú¿ô¤ÇÅϤ·¤Þ¤¹¡£
+  ¥¹¥¯¥ê¥×¥È¦¤Ï DVI ¥Õ¥¡¥¤¥ë¤òɸ½àÆþÎϤ«¤éÆɤߤȤê°õºþ¤¹¤ë¥¹¥¯¥ê¥×¥È¤Ë
+¤·¤Þ¤¹¡£dvips ¤ò»È¤Ã¤¿¥µ¥ó¥×¥ë¤¬¥¤¥ó¥¹¥È¡¼¥ë¤µ¤ì¤Þ¤¹¤Î¤Ç¡¢¤½¤Î¤Þ¤Þ¤Ç¤â
+»È¤¨¤ë¤È¤Ï»×¤¤¤Þ¤¹¤¬¡¢¹¥¤­¤ËÊÔ½¸¤·¤Æ²¼¤µ¤¤¡£:-)
+  DVISEL ¤ò define ¤¹¤ë¤È¡¢% ¥·¡¼¥±¥ó¥¹¤Î¥³¥Þ¥ó¥É»ØÄêÅù¤Ï¤Ç¤­¤Ê¤¯¤Ê¤ê¤Þ¤¹¡£
+
+  ¤Ê¤ª¡¢PRINTDVI ¤Ç¤Ï¡¢landscape Åù¤Î¥ª¥×¥·¥ç¥ó¤Î°ã¤¤¤ò xdvipaper.dvips
+Åù¤ÎÊÑ´¹¥Õ¥¡¥¤¥ë¤ò»È¤Ã¤Æ¡¢xdvi ÆâÉô¤ÇÊÑ´¹¤·¤Æ¤¤¤Þ¤·¤¿¡£¤³¤ì¤â¡¢¤É¤Î¥×¥ê
+¥ó¥¿¥É¥é¥¤¥Ð¡¼¤ò»È¤¦¤«¤ò xdvi ÆâÉô¤ËËä¤á¹þ¤Þ¤Ê¤¤¤È¤¤¤¦Êý¿Ë¤«¤é¡¢xdvi
+ÆâÉô¤Ç¤Ï¤³¤ÎÊÑ´¹½èÍý¤ò¤·¤Þ¤»¤ó¡£¤³¤Î½èÍý¤Ï¥¹¥¯¥ê¥×¥È¦¤Ç¤¹¤ë¤è¤¦¤Ë¤·¤Þ¤¹¡£
+¥¤¥ó¥¹¥È¡¼¥ë¤µ¤ì¤ë¥µ¥ó¥×¥ë¡¦¥¹¥¯¥ê¥×¥È¤Ç¤Ï¤³¤Î½èÍý¤ò¤·¤Æ¤Þ¤¹¤Î¤Ç¡¢½¾Íè¤Î
+PRINTDVI ¤ò»È¤Ã¤Æ¤¿»þ¤ÈƱ¤¸µ¡Ç½¤¬¼Â¸½¤Ç¤­¤Æ¤ë¤È¤Ï»×¤¤¤Þ¤¹¤¬¡¢¥¹¥¯¥ê¥×¥È¤Î
+¤³¤ÎÉôʬ¤â¹¥¤­¤Ë½ñ¤­´¹¤¨¤Æ»È¤Ã¤Æ²¼¤µ¤¤¡£:-)
+
+  Ê䭤Ǥ¹¤¬¡¢DVISEL µ¡Ç½¤Ï PRINTDVI ¥ë¡¼¥Á¥ó¤òÁ´ÉôÃÖ¤­´¹¤¨¤¿¤â¤Î¤Ç¤Ï¤Ê¤¯¡¢
+¤½¤Î¤Û¤È¤ó¤É¤Ï PRINTDVI ¤Î¥ë¡¼¥Á¥ó¤ò»È¤Ã¤Æ¼Â¸½¤·¤Æ¤¤¤Þ¤¹¡£dviselect ¤Î¥½¡¼¥¹
+¤Ï»È¤ï¤º°ì¤«¤é½ñ¤­Â­¤·¤Þ¤·¤¿¡£
+
+  ¤Þ¤¿¡¢DVISEL µ¡Ç½¤¬½ÐÎϤ¹¤ëÀÚ¤ê½Ð¤·¤¿ DVI ¤È¡¢dviselect ¥³¥Þ¥ó¥É¤¬½ÐÎϤ¹¤ë
+DVI ¤ÏƱ¤¸¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó¡£°ã¤¤¤Ï¡¢dviselect ¤Ç¤Ï¥Õ¥©¥ó¥ÈÈÖ¹æ¤Î¥ê¥Ê¥ó¥Ð¡¼
+¤ò¹Ô¤Ê¤Ã¤Æ¤ë¤Î¤Ë¡¢¤³¤Î DVISEL µ¡Ç½¤Ï¤½¤ì¤ò¹Ô¤Ê¤Ã¤Æ¤Ê¤¤ÅÀ¤Ç¤¹¡£
+  DVI ¥Õ¥¡¥¤¥ë¤Ç¤Ï¥Õ¥©¥ó¥ÈÈÖ¹æ 0¡Á63ÈÖ¤Þ¤Ç¤Ï 1¥Ð¥¤¥È¤Ç¥Õ¥©¥ó¥È¥Á¥§¥ó¥¸¤¬
+¤Ç¤­¤ë¤¬¡¢64Èְʾå¤À¤È¥Õ¥©¥ó¥È¥Á¥§¥ó¥¸¤Ë 2¥Ð¥¤¥È¤«¤«¤ë¤È¤¤¤¦»ÅÍͤˤʤäÆ
+¤Þ¤¹¡£½¾¤Ã¤Æ¡¢¥ª¥ê¥¸¥Ê¥ë¤Î DVI ¥Õ¥¡¥¤¥ë¤Ç¤Ï¥Õ¥©¥ó¥È¤ò 65¼ïÎà°Ê¾å»È¤Ã¤Æ
+¤ë¤¬¡¢»ØÄê°õºþ¥Ú¡¼¥¸¤Ç¤Ï¹ç·× 64¼ïÎà°Ê²¼¤Î¥Õ¥©¥ó¥È¤·¤«»È¤ï¤ì¤Æ¤Ê¤¤¾ì¹ç¡¢
+dviselect ¤Ç¤Ï½ÐÎÏ DVI ¤Ç»È¤ï¤ì¤Æ¤Ê¤¤·çÈ֤Υե©¥ó¥ÈÈÖ¹æ¤òËä¤á¤ÆÁ´¤Æ
+1¥Ð¥¤¥È¤Î¥Õ¥©¥ó¥È¥Á¥§¥ó¥¸¤Ë¤·¤Æ¤·¤Þ¤¦»ö¤¬¤Ç¤­¤Þ¤¹¤¬¡¢¤³¤Î DVISEL µ¡Ç½¤Ï
+¥ª¥ê¥¸¥Ê¥ë¤Î DVI ¥Õ¥¡¥¤¥ë¤Î¥Õ¥©¥ó¥ÈÈÖ¹æ¤ò¤½¤Î¤Þ¤Þ»È¤¤¤Þ¤¹¡£½¾¤Ã¤Æ¡¢
+dviselect ¤Î½ÐÎϤ¹¤ë DVI ¤è¤ê¥µ¥¤¥º¤¬Â礭¤¯¤Ê¤ë²ÄǽÀ­¤¬¤¢¤ê¤Þ¤¹¡£
+
+  ¤â¤Ã¤È¤â¡¢»ä¤Ï 65¼ïÎà°Ê¾å¤â¤Î¥Õ¥©¥ó¥È¤ò»È¤Ã¤¿ TeX ¤Ê¤ó¤Æ¸«¤¿»ö¤Ê¤¤¤·¡¢
+¤É¤¦¤»°õºþ¤¹¤ë»þ¤Ë°ì»þŪ¤Ë»È¤Ã¤Æ¤¹¤°¾Ã¤¹ DVI ¤Î½ÐÎϤǿô¥Ð¥¤¥È¤òÀáÌó¤·¤Æ
+¤â¤·¤ç¤¦¤¬¤Ê¤¤¤Î¤Ç¡¢¥Õ¥©¥ó¥ÈÈÖ¹æ¤Î¥ê¥Ê¥ó¥Ð¡¼¤Ï¹Ô¤Ê¤ï¤Ê¤¤»ö¤Ë¤·¤Þ¤·¤¿¡£:-)
+DVI ¥Õ¥¡¥¤¥ëÃæ¤Ç»È¤ï¤ì¤Æ¤ë¥Õ¥©¥ó¥ÈÈֹ椬Èô¤ÓÈô¤Ó¤Ê¤Î¤ÏÌäÂꤢ¤ê¤Þ¤»¤ó¡£
+TeX ¼«ÂΤ½¤¦¤¤¤¦ DVI ¤òÅǤ­¤Þ¤¹¡£:-)
+
+
+ 3) ¤½¤Î¾ (ÀÛºî̤ȯɽ)
+
+   3.1) SMALL_PANEL ¤Î¿ôÃͤθ«Ä¾¤·
+
+     ²èÌ̤µ¤¤¥Î¡¼¥È¥Ñ¥½¥³¥óÅù¤Ç»È¤¦»þ¤Ë¤Ï SMALL_PANEL µ¡Ç½¤ÏÊØÍø¤Ç¤¹
+   ¤¬¡¢¾®¤µ¤¯¤¹¤ë¤¢¤Þ¤ê¥Ü¥¿¥ó¤È¥¹¥¯¥í¡¼¥ë¥Ð¡¼¤¬½Å¤Ê¤Ã¤¿¤ê¤·¤Æ¤Æ³Ê¹¥°­¤¤
+   ¤Ç¤¹¡£°ìÈÌ¤Ë SMALL_PANEL ¤ò»È¤¤¤¿¤¤¿Í¤Ï²èÌ̤νÄÊý¸þ¤Ë;͵¤¬¤Ê¤¤¤±¤É¡¢
+   ²£Êý¸þ¤Ë¤Ï¤Þ¤À;͵¤¬¤¢¤ë¤È»×¤ï¤ì¤Þ¤¹¡£¤Þ¤¿¡¢½ÄÊý¸þ¤Ë¾®¤µ²á¤®¤ë¾ì¹ç¤Ï
+   ¥¦¥£¥ó¥É¡¼¤ò¥ê¥µ¥¤¥º¤¹¤ì¤ÐºÑ¤ß¤Þ¤¹¤¬¡¢²£Êý¸þ¤Ï¥ê¥µ¥¤¥º¤·¤Æ¤â¥Ñ¥Í¥ëÉôʬ
+   ¤ÎÂ礭¤µ¤ÏÊѤï¤é¤Ê¤¤¤Î¤Ç¡¢²£Êý¸þ¤Ë¾®¤µ²á¤®¤Æ¸«¤Ë¤¯¤¤¤Î¤Ïľ¤·¤Ë¤¯¤¤¤Ç¤¹¡£
+   ¤È¤¤¤¦Ìõ¤Ç¡¢Á´ÂΤΥХé¥ó¥¹¤ò¸«Ä¾¤·¤Æ¤ß¤Þ¤·¤¿¡£
+
+   3.2) ¡ÖXDvi*international: True¡×¤Ê¤ó¤Æ¡¢ÀßÄê¤ò¤¹¤ë¤È¡¢TOC ¤Ç¥Þ¥¦¥¹
+     ¿¿Ãæ¥Ü¥¿¥ó¤ò²¡¤·¤¿»þ¤Ë²¡¤·¤¿°ÌÃ֤Ȱ㤦°ÌÃÖ¤¬¥Þ¡¼¥¯¤µ¤ì¤Æ¤·¤Þ¤¦¡£
+     ¤Þ¤¿¡¢SELFILE »þ¤Ëʸ»ú²½¤±¤·¤¿¤ê¡¢É½¼¨¤¬¤º¤ì¤¿¤ê¤¹¤ë¡£
+
+     ¤³¤ó¤ÊÀßÄê¤Ë¤·¤Æ¤ë¿Í¤Ï¤¤¤Ê¤¤¤«¤âÃΤì¤Þ¤»¤ó¤¬(^^;;)¡¢Athena Widget
+   ¤Ç i18n ¤Ë¤¹¤ë»þ¤Ë¤Ï XFontStruct ¤ò»È¤Ã¤Æ¤ëÉôʬ¤ÏÁ´Éô½ñ¤­´¹¤¨¤Ê¤­¤ã
+   ¡Ä¤È¤¤¤¦¤ä¤Ä¤Ç¤¹¡£:-)
+     °ì±þ¡¢X11R4 °ÊÁ°¤ò»È¤Ã¤Æ¤ë¿Í¤ò¹Í¤¨¤Æ(¤¤¤ë¤Î¤«? ^^;;)¡¢#ifdef ÉÕ¤­¤Ç
+   Êѹ¹¤·¤Æ¤ª¤­¤Þ¤·¤¿¡£:-)  ¥Æ¥¹¥È¤Ï¤·¤Æ¤Þ¤»¤ó¡£X11R4 ¤Ê¤ó¤Æ̵¤¤(¾Ð)¡£
+
+   3.3) ¥Þ¥Ë¥å¥¢¥ë¤Î¥ª¥×¥·¥ç¥óÀâÌÀÉôʬ¤ËÉÕ¤¤¤Æ
+
+     xdvi ¤Î man ¤Î¥ª¥×¥·¥ç¥óÉôʬ¤ÎÀâÌÀ¤Ï¥ª¥×¥·¥ç¥ó¤Î¥¢¥ë¥Õ¥¡¥Ù¥Ã¥È½ç¤Ë
+   µ­½Ò¤µ¤ì¤Æ¤ë¤È»×¤ï¤ì¤ë¤¬¡¢PRINTDVI ¤ÇÄɲ䵤줿¥ª¥×¥·¥ç¥ó¤Ï¸å¤í¤Ë
+   Äɲ䵤ì¤Æ¤Æ¡¢¥¢¥ë¥Õ¥¡¥Ù¥Ã¥È½ç¤Ë¤Ê¤Ã¤Æ¤Ê¤¤¤Î¤Ç¡¢¥½¡¼¥È¤·Ä¾¤·¤¿¡£:-)
+
+
+¡û³Ð½ñ (´º¤¨¤Æ TODO ¤È¤Ï½ñ¤«¤Ê¤¤(¾Ð))
+
+  * ¤«¤Ä¤Æ¿§¡¹¤¢¤Ã¤¿ xdvi-17 ÍѥѥåÁ¤Î¤¦¤Á¡¢xdvik-20c ÍѥѥåÁ¤Ç¤Þ¤À¼è¤ê
+ ¹þ¤Þ¤ì¤Æ¤Ê¤¤µ¡Ç½¤È¤·¤Æ¤Ï¡¢xdvi-17jp.960209 ¤Ë¤¢¤Ã¤¿¡¢
+    5.  DVI ¥Õ¥¡¥¤¥ëÃæ¤Îʸ»úÎó¤Î¸¡º÷µ¡Ç½¡£
+    6.  -remote ¥ª¥×¥·¥ç¥ó¤ÎÄɲá£
+ ¤¬µó¤²¤é¤ì¤Þ¤¹¡£
+
+
+¡ûºÇ¸å¤Ë
+
+  Ãøºî¸¢¤Ï¤½¤ì¤¾¤ì¤Î¥Ñ¥Ã¥Á¤Îºî¼Ô¤Ë¤¢¤ê¤Þ¤¹¡£¾Ü¤·¤¯¤Ï READMEs/ ¥Ç¥£¥ì¥¯
+¥È¥ê°Ê²¼¤Î¥Õ¥¡¥¤¥ë·²¤Ê¤É¤ò¸«¤Æ²¼¤µ¤¤¡£
+
+/* Takeshi WATANABE <watanabe at komadori.planet.sci.kobe-u.ac.jp> */
diff -N texk/xdvik/READMEs/README.xdvik20c-j1.0p1.patch
--- xdvik-22.84.10.orig/texk/xdvik/READMEs/README.xdvik20c-j1.0p1.patch	1 Jan 1970 00:00:00 -0000
+++ xdvik-22.84.10/texk/xdvik/READMEs/README.xdvik20c-j1.0p1.patch	18 Aug 2003 01:39:46 -0000	1.1
@@ -0,0 +1,43 @@
+xdvik20c-j1.0p1.patch ¤Ë¤Ä¤¤¤Æ
+
+                                         ÃÞÇÈÂç³Ø ¼Ò²ñ¹©³Ø¸¦µæ²Ê
+                                         Ã汦 ¹ÀÆó (knakau at sk.tsukuba.ac.jp)
+
+ÍÑÅÓ¡§
+   ¤³¤Î¥Ñ¥Ã¥Á¤Ï¡¢xdvi (xdvik-20c) ¤¬ÆüËܸì¤òɽ¼¨¤Ç¤­¤ë¤è¤¦¤ËÊѹ¹¤ò
+   ²Ã¤¨¤ë¥Ñ¥Ã¥Á¤Ç¤¹¡£(ASCII-pTeX, NTT-JTeX)
+
+¼Õ¼­¡§
+   ¤³¤Î¥Ñ¥Ã¥Á¤Ï xdvi-20a-j1.1p15.patch ̵¤¯¤·¤Æ¤Ï¸ºß¤·¤Þ¤»¤ó¡£
+   ¤½¤ÎÀ½ºî¤Ë¤Ï¡¢»³²ì¡÷ÀéÍÕÂ礵¤ó¤ò½é¤á¤È¤¹¤ë¿¤¯¤ÎÊý¤¬·È¤ï¤Ã¤Æ
+   ¤ª¤é¤ì¤Þ¤¹¡£¤½¤ÎÅØÎϤ˴¶¼Õ¤·¤Ä¤Ä¡¢¤³¤Î¥Ñ¥Ã¥Á¤ò»È¤¤¤Þ¤·¤ç¤¦¡£
+
+½Ð½ê¡§
+   ¤³¤Î¥Ñ¥Ã¥Á¤Ï´ðËÜŪ¤Ë xdvik20a-j1.1p15.patch ¤ËÊѹ¹¤ò²Ã¤¨¡¢
+   xdvik-20c¤ËÂбþ¤µ¤»¤¿¤â¤Î¤Ç¤¹¡£¤½¤ÎºÝ¤Î¼ç¤ÊÊѹ¹ÅÀ¤Ï¡¢
+   °Ê²¼¤ÎÆóÅÀ¤Ç¤¹¡£
+
+     ¡ü xdvik-20¦¤Î¥Õ¥¡¥¤¥ë̾¤ÎÊѹ¹¤Ëȼ¤¦¥Ñ¥Ã¥ÁÆâÍƤÎÊѹ¹¡£
+     ¡ü xdvik-20¤ÎÆâÍÆÊѹ¹¤Ëȼ¤¦¥Ñ¥Ã¥ÁÅö¤Æ¾ò·ï¤ÎÊѹ¹¡£
+
+   xdvik20c-j1.0p1¤«¤é¡¢Æ⻳¡÷·Ä±þÂ礵¤ó¤Î¹×¸¥¤Ë¤è¤ê¡¢jisx0212
+   ¤ÎÊä½õ´Á»ú¤òÍøÍѤǤ­¤ë¤è¤¦¤Ë¤Ê¤ê¤Þ¤·¤¿¡£¤³¤ÎÍøÍѤˤĤ¤¤Æ¤Ï¡¢
+   ²¼µ­¤Î¥Ú¡¼¥¸¤¬»²¹Í¤Ë¤·¤Æ²¼¤µ¤¤¡£
+   Ê¡°æ¡÷ÅìÂ礵¤ó http://www.tooyoo.l.u-tokyo.ac.jp/fkr/makejvf.html
+   Æ⻳¡÷·ÄÂ礵¤ó http://macptex.appi.keio.ac.jp/~uchiyama/gaiji.html
+
+¥¤¥ó¥¹¥È¡¼¥ë¡§
+   ¥¤¥ó¥¹¥È¡¼¥ë¤Ë¤Ä¤¤¤Æ¤Ï¡¢linux, Digital UNIX¤Î¾ì¹ç¤Î
+   ¥¤¥ó¥¹¥È¡¼¥ë¼ê½ç¤Ë¤Ä¤¤¤Æ¡¢¾ÜºÙ¤Ëµ­Ï¿¤·¤Æ¤ª¤­¤Þ¤·¤¿¡£
+   ¾Ü¤·¤¯¤Ï¡¢²¼µ­¤ÎURL¤ò¸æÍ÷¤¯¤À¤µ¤¤¡£
+   http://ecopolis.sk.tsukuba.ac.jp/~knakau/unix/
+
+   ¤Þ¤¿¡¢README.xdvik20a-j1.1.patch ¤Ë»³²ì¡÷ÀéÍÕÂ礵¤ó¤Ë¤è¤ë
+   ¾ÜºÙ¤Êµ­½Ò¤¬¤¢¤ê¤Þ¤¹¡£¤½¤Á¤é¤âÊ»¤»¤Æ»²¹Í¤Ë¤·¤Æ²¼¤µ¤¤¡£
+
+Ãí°ÕÅÀ¡§
+   ¥¤¥ó¥¹¥È¡¼¥ë»þ¤ËÀßÄêÊѹ¹¤ò¹Ô¤¦¥Õ¥¡¥¤¥ë̾¤¬ 20a ¤«¤é 20c ¤Î´Ö¤Ç
+   Êѹ¹¤µ¤ì¤Æ¤¤¤Þ¤¹¡£¤´Ãí°Õ²¼¤µ¤¤¡£
+
+     ¡ü Makefile       (Êѹ¹Ìµ¤·)
+     ¡ü xdvi-config.h  (°ÊÁ°¤Î config.h ¤ËÁêÅö)
diff -u -r1.1.1.5 -r1.5
--- xdvik-22.84.10.orig/texk/xdvik/gui/help-window.c	1 Jan 2005 07:53:34 -0000	1.1.1.5
+++ xdvik-22.84.10/texk/xdvik/gui/help-window.c	17 Nov 2005 04:28:09 -0000	1.5
@@ -309,6 +309,9 @@
 #ifdef T1LIB
 	"- T1lib (direct rendering of PS fonts) enabled\n",
 #endif
+#ifdef USE_ZEIT
+	"- FreeType (Kanji font rendering) enabled\n",
+#endif /* USE_ZEIT */
 #if HAVE_ICONV_H
 	"- Iconv support compiled in\n",
 #if USE_LANGINFO
diff -u -r1.1.1.7 -r1.3
--- xdvik-22.84.10.orig/texk/xdvik/texmf/XDvi	22 Apr 2004 02:36:40 -0000	1.1.1.7
+++ xdvik-22.84.10/texk/xdvik/texmf/XDvi	24 Feb 2005 15:24:00 -0000	1.3
@@ -125,7 +125,7 @@
 !!!------------------------------------------------------------------------------
 !!! background color and font:
 *tipShell.background: cornsilk
-*tipShell.fontSet: -*-helvetica-medium-r-*-*-12-*-*-*-*-*-*
+*tipShell.fontSet: -*-helvetica-medium-r-*-*-12-*-*-*-*-*-*,-*-*-medium-r-*-*-12-*-*-*-*-*-*,
 
 !!! time the mouse needs to stay on a button until tooltips pop up,
 !!! in milliseconds; set to a negative value to disable:
@@ -133,11 +133,24 @@
 
 
 !!!------------------------------------------------------------------------------
+!!!-------------------------------- Xaw i18n ------------------------------------
+!!!------------------------------------------------------------------------------
+!!! note: when i18n'ed, *font and *fontSet should have same size of font
+*international: true
+*inputMethod: kinput2
+*preeditType: OverTheSpot,OffTheSpot,Root
+!!! note: xdviSelFile can not be i18n'ed (bug?)
+xdviSelFile*international: false
+
+
+!!!------------------------------------------------------------------------------
 !!!------------------------------ Fonts and colors ------------------------------
 !!!------------------------------------------------------------------------------
-*font:     -*-helvetica-medium-r-*-*-12-*-*-*-*-*-*
+*font:    -*-helvetica-medium-r-*-*-12-*-*-*-*-*-*
+*fontSet: -*-helvetica-medium-r-*-*-12-*-*-*-*-*-*,-*-*-medium-r-*-*-12-*-*-*-*-*-*
 !!! Use a smaller font for the statusline in the Xaw version:
-*statusline.font: -*-helvetica-medium-r-*-*-10-*-*-*-*-*-*
+*statusline.font:    -*-helvetica-medium-r-*-*-10-*-*-*-*-*-*
+*statusline.fontSet: -*-helvetica-medium-r-*-*-10-*-*-*-*-*-*,-*-*-medium-r-*-*-10-*-*-*-*-*-*
 
 !!! Motif fonts. Meaning of the tags is:
 !!! NORMAL: Ordinary text, labels etc.
@@ -147,11 +160,11 @@
 !!! TOPIC_HEADING: Heading for help text in help window
 !!!
 *fontList: \
--*-helvetica-medium-r-*-*-12-*-*-*-*-*-*-*=NORMAL,\
--*-helvetica-medium-r-*-*-12-*-*-*-*-*-*-*=UNMARKED,\
--*-helvetica-bold-r-*-*-12-*-*-*-*-*-*-*=MARKED,\
--*-helvetica-bold-r-*-*-12-*-*-*-*-*-*-*=TOPIC_LABEL,\
--*-helvetica-bold-r-*-*-14-*-*-*-*-*-*-*=TOPIC_HEADING
+-*-*-medium-r-*-*-12-*-*-*-*-*-*-*:=NORMAL,\
+-*-*-medium-r-*-*-12-*-*-*-*-*-*-*:=UNMARKED,\
+-*-*-bold-r-*-*-12-*-*-*-*-*-*-*:=MARKED,\
+-*-*-bold-r-*-*-12-*-*-*-*-*-*-*:=TOPIC_LABEL,\
+-*-*-bold-r-*-*-14-*-*-*-*-*-*-*:=TOPIC_HEADING
 
 
 !!! Color used for page border, image bounding boxes and the ruler in `Ruler mode'.


Index: .cvsignore
===================================================================
RCS file: /cvs/extras/rpms/texlive/devel/.cvsignore,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- .cvsignore	2 Dec 2007 03:35:08 -0000	1.1
+++ .cvsignore	2 Dec 2007 08:03:19 -0000	1.2
@@ -0,0 +1,4 @@
+dvipsk-jpatch-p1.7a.tar.bz2
+mendexk2.6e.tar.gz
+ptex-src-3.1.10.tar.gz
+source-free.tar.bz2


Index: sources
===================================================================
RCS file: /cvs/extras/rpms/texlive/devel/sources,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- sources	2 Dec 2007 03:35:08 -0000	1.1
+++ sources	2 Dec 2007 08:03:19 -0000	1.2
@@ -0,0 +1,4 @@
+de024c71383d35d2274f5ebc599057f7  dvipsk-jpatch-p1.7a.tar.bz2
+fe07b8b7b83d1cb13f836dc1caf7bad8  mendexk2.6e.tar.gz
+9738f48ec9d6b603b4b6550ba480876d  ptex-src-3.1.10.tar.gz
+c67cdc1e1ecfeb87ccb9dfacc56a7a97  source-free.tar.bz2




More information about the fedora-extras-commits mailing list