]> git.pld-linux.org Git - packages/texlive.git/commitdiff
- from fc
authorArkadiusz Miśkiewicz <arekm@maven.pl>
Sat, 7 Jun 2008 18:26:39 +0000 (18:26 +0000)
committercvs2git <feedback@pld-linux.org>
Sun, 24 Jun 2012 12:13:13 +0000 (12:13 +0000)
Changed files:
    dvipsk-jpatch-pdvips.patch -> 1.1
    texlive-12a_fix_thumbpdf_invocation.patch -> 1.1
    texlive-12b_fix_a2ping_invocation.patch -> 1.1
    texlive-12c_fix_pdfcrop_invocation.patch -> 1.1
    texlive-12d_fix_ebong_invocation.patch -> 1.1
    texlive-12e_fix_vpe_invocation.patch -> 1.1
    texlive-2007-badscript.patch -> 1.1
    texlive-2007-browser.patch -> 1.1
    texlive-2007-copyright-utf8-man.patch -> 1.1
    texlive-2007-epstopdf-shellbang.patch -> 1.1
    texlive-2007-fmtutil-ptex.patch -> 1.1
    texlive-2007-jp-platex209.patch -> 1.1
    texlive-2007-kpse-extensions.patch -> 1.1
    texlive-2007-makej.patch -> 1.1
    texlive-2007-pdvips.patch -> 1.1
    texlive-2007-ptex-3.1.10.patch -> 1.1
    texlive-2007-tmpcleanup.patch -> 1.1
    texlive-Build_script.patch -> 1.1
    texlive-CVE-2007-4033.patch -> 1.1
    texlive-checklib_fixes.patch -> 1.1
    texlive-dviljktemp.patch -> 1.1
    texlive-dvips_fontbug_fix_upstream.patch -> 1.1
    texlive-dvipsoverflow.patch -> 1.1
    texlive-fedora_paths.patch -> 1.1
    texlive-filter-requires.sh -> 1.1
    texlive-fix_makempx_installation.patch -> 1.1
    texlive-fix_pkfix_invocation.patch -> 1.1
    texlive-fmtutil-infloop.patch -> 1.1
    texlive-fmtutil_keep_failedlog.patch -> 1.1
    texlive-generate-tarball.sh -> 1.1
    texlive-maketexmf.patch -> 1.1
    texlive-man-context.patch -> 1.1
    texlive-man-notetex.patch -> 1.1
    texlive-mktexlsr_fixes.patch -> 1.1
    texlive-more_paths.patch -> 1.1
    texlive-pdftex.patch -> 1.1
    texlive-poppler.patch -> 1.1
    texlive-source-CVE-2007-0650.patch -> 1.1
    texlive-source-icu.patch -> 1.1
    texlive-source-t1lib.patch -> 1.1
    texlive-source-warns.patch -> 1.1
    texlive-source-x11r7.patch -> 1.1
    texlive-teckit.patch -> 1.1
    texlive-texdoc.patch -> 1.1
    texlive.cron -> 1.1

45 files changed:
dvipsk-jpatch-pdvips.patch [new file with mode: 0644]
texlive-12a_fix_thumbpdf_invocation.patch [new file with mode: 0644]
texlive-12b_fix_a2ping_invocation.patch [new file with mode: 0644]
texlive-12c_fix_pdfcrop_invocation.patch [new file with mode: 0644]
texlive-12d_fix_ebong_invocation.patch [new file with mode: 0644]
texlive-12e_fix_vpe_invocation.patch [new file with mode: 0644]
texlive-2007-badscript.patch [new file with mode: 0644]
texlive-2007-browser.patch [new file with mode: 0644]
texlive-2007-copyright-utf8-man.patch [new file with mode: 0644]
texlive-2007-epstopdf-shellbang.patch [new file with mode: 0644]
texlive-2007-fmtutil-ptex.patch [new file with mode: 0644]
texlive-2007-jp-platex209.patch [new file with mode: 0644]
texlive-2007-kpse-extensions.patch [new file with mode: 0644]
texlive-2007-makej.patch [new file with mode: 0644]
texlive-2007-pdvips.patch [new file with mode: 0644]
texlive-2007-ptex-3.1.10.patch [new file with mode: 0644]
texlive-2007-tmpcleanup.patch [new file with mode: 0644]
texlive-Build_script.patch [new file with mode: 0644]
texlive-CVE-2007-4033.patch [new file with mode: 0644]
texlive-checklib_fixes.patch [new file with mode: 0644]
texlive-dviljktemp.patch [new file with mode: 0644]
texlive-dvips_fontbug_fix_upstream.patch [new file with mode: 0644]
texlive-dvipsoverflow.patch [new file with mode: 0644]
texlive-fedora_paths.patch [new file with mode: 0644]
texlive-filter-requires.sh [new file with mode: 0644]
texlive-fix_makempx_installation.patch [new file with mode: 0644]
texlive-fix_pkfix_invocation.patch [new file with mode: 0644]
texlive-fmtutil-infloop.patch [new file with mode: 0644]
texlive-fmtutil_keep_failedlog.patch [new file with mode: 0644]
texlive-generate-tarball.sh [new file with mode: 0644]
texlive-maketexmf.patch [new file with mode: 0644]
texlive-man-context.patch [new file with mode: 0644]
texlive-man-notetex.patch [new file with mode: 0644]
texlive-mktexlsr_fixes.patch [new file with mode: 0644]
texlive-more_paths.patch [new file with mode: 0644]
texlive-pdftex.patch [new file with mode: 0644]
texlive-poppler.patch [new file with mode: 0644]
texlive-source-CVE-2007-0650.patch [new file with mode: 0644]
texlive-source-icu.patch [new file with mode: 0644]
texlive-source-t1lib.patch [new file with mode: 0644]
texlive-source-warns.patch [new file with mode: 0644]
texlive-source-x11r7.patch [new file with mode: 0644]
texlive-teckit.patch [new file with mode: 0644]
texlive-texdoc.patch [new file with mode: 0644]
texlive.cron [new file with mode: 0644]

diff --git a/dvipsk-jpatch-pdvips.patch b/dvipsk-jpatch-pdvips.patch
new file mode 100644 (file)
index 0000000..42c0e77
--- /dev/null
@@ -0,0 +1,146 @@
+--- 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
diff --git a/texlive-12a_fix_thumbpdf_invocation.patch b/texlive-12a_fix_thumbpdf_invocation.patch
new file mode 100644 (file)
index 0000000..8820ade
--- /dev/null
@@ -0,0 +1,19 @@
+12a_fix_thumbpdf_invocation.dpatch  <preining@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
+ #
diff --git a/texlive-12b_fix_a2ping_invocation.patch b/texlive-12b_fix_a2ping_invocation.patch
new file mode 100644 (file)
index 0000000..14a99a7
--- /dev/null
@@ -0,0 +1,29 @@
+#! /bin/sh /usr/share/dpatch/dpatch-run
+## 12b_fix_a2ping_invocation.dpatch  <preining@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@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!
diff --git a/texlive-12c_fix_pdfcrop_invocation.patch b/texlive-12c_fix_pdfcrop_invocation.patch
new file mode 100644 (file)
index 0000000..313e7cb
--- /dev/null
@@ -0,0 +1,19 @@
+12c_fix_pdfcrop_invocation.dpatch  <preining@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
+ #
diff --git a/texlive-12d_fix_ebong_invocation.patch b/texlive-12d_fix_ebong_invocation.patch
new file mode 100644 (file)
index 0000000..57b4fee
--- /dev/null
@@ -0,0 +1,13 @@
+---
+ 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'
diff --git a/texlive-12e_fix_vpe_invocation.patch b/texlive-12e_fix_vpe_invocation.patch
new file mode 100644 (file)
index 0000000..739c4c4
--- /dev/null
@@ -0,0 +1,15 @@
+---
+ 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
diff --git a/texlive-2007-badscript.patch b/texlive-2007-badscript.patch
new file mode 100644 (file)
index 0000000..1c0b9ba
--- /dev/null
@@ -0,0 +1,153 @@
+--- 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()
+ {
diff --git a/texlive-2007-browser.patch b/texlive-2007-browser.patch
new file mode 100644 (file)
index 0000000..35d2b20
--- /dev/null
@@ -0,0 +1,39 @@
+--- 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"
diff --git a/texlive-2007-copyright-utf8-man.patch b/texlive-2007-copyright-utf8-man.patch
new file mode 100644 (file)
index 0000000..2ad925f
--- /dev/null
@@ -0,0 +1,24 @@
+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@dbs\&.uni-hannover\&.de> and is Copyright © 1999\&.
++<te@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 
diff --git a/texlive-2007-epstopdf-shellbang.patch b/texlive-2007-epstopdf-shellbang.patch
new file mode 100644 (file)
index 0000000..ad3590a
--- /dev/null
@@ -0,0 +1,9 @@
+--- 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
diff --git a/texlive-2007-fmtutil-ptex.patch b/texlive-2007-fmtutil-ptex.patch
new file mode 100644 (file)
index 0000000..93fc223
--- /dev/null
@@ -0,0 +1,12 @@
+diff -up texlive-2007/texk/tetex/fmtutil.ptex texlive-2007/texk/tetex/fmtutil
+--- texlive-2007/texk/tetex/fmtutil.ptex       2008-01-01 22:32:44.000000000 +0100
++++ texlive-2007/texk/tetex/fmtutil    2008-01-01 22:33:10.000000000 +0100
+@@ -674,6 +674,8 @@ run_initex()
+   case "$format" in
+     metafun) prgswitch=-progname=mpost;;
+     mptopdf|cont-??) prgswitch=-progname=context;;
++    platex*) prgswitch=-progname=platex;;
++    ptex*) prgswitch=-progname=ptex;;
+     *)       prgswitch=-progname=$format;;
+   esac
diff --git a/texlive-2007-jp-platex209.patch b/texlive-2007-jp-platex209.patch
new file mode 100644 (file)
index 0000000..332d92a
--- /dev/null
@@ -0,0 +1,82 @@
+diff -up ptex-src-3.1.10/Makefile.in.fmts ptex-src-3.1.10/Makefile.in
+--- ptex-src-3.1.10/Makefile.in.fmts   2006-06-05 03:50:47.000000000 +0200
++++ ptex-src-3.1.10/Makefile.in        2008-01-01 23:28:57.000000000 +0100
+@@ -3,11 +3,9 @@ version = @WEB2CVERSION@
+ configopt = @configopt@
+ configkcode = @configkcode@
+-default: programs formats
++default: programs texmf.cnf
+ programs=ptex tftopl pltotf pdvitype jbibtex
+-euc-formats=ptex-euc.fmt platex-euc.fmt
+-sjis-formats=ptex-sjis.fmt platex-sjis.fmt
+ ac_include ../../make/paths.mk
+@@ -162,30 +160,12 @@ $(kpathsea):
+ # \f
+ # Making formats and bases.
+-formats=$(euc-formats) $(sjis-formats)
+-formats: $(formats)
+ texmf.cnf: $(kpathsea_dir)/texmf.cnf
+       $(SHELL) $(thisdir)/mkconf $(kpathsea_dir)/texmf.cnf > texmf.cnf
+ dumpenv = TEXMFCNF=$(thisdir)
+-ptex-euc.fmt: ptex texmf.cnf
+-      $(dumpenv) $(MAKE) progname=ptex files="ptex.tex min10.tfm" prereq-check
+-      $(dumpenv) ./ptex --ini --kanji=euc --progname=ptex --jobname=ptex-euc \\input ptex.tex \\dump </dev/null
+-
+-ptex-sjis.fmt: ptex texmf.cnf
+-      $(dumpenv) $(MAKE) progname=ptex files="ptex.tex min10.tfm" prereq-check
+-      $(dumpenv) ./ptex --ini --kanji=sjis --progname=ptex --jobname=ptex-sjis \\input ptex.tex \\dump </dev/null
+-
+-platex-euc.fmt: ptex texmf.cnf
+-      $(dumpenv) $(MAKE) progname=platex files="platex.ltx" prereq-check
+-      $(dumpenv) ./ptex --ini --kanji=euc --progname=platex --jobname=platex-euc \\input platex.ltx </dev/null
+-
+-platex-sjis.fmt: ptex texmf.cnf
+-      $(dumpenv) $(MAKE) progname=platex files="platex.ltx" prereq-check
+-      $(dumpenv) ./ptex --ini --kanji=sjis --progname=platex --jobname=platex-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
+@@ -209,7 +189,6 @@ $(kpathsea_dir)/kpsewhich: $(kpathsea)
+ install: install-exec install-data
+       $(top_srcdir)/kpathsea/mktexlsr
+ install-exec:: install-links
+-install-data:: install-formats
+ # Installation directories.
+ $(bindir)::
+@@ -223,17 +202,7 @@ install-programs: $(programs) $(bindir)
+ # The links to ptex for each format.
+ install-links: install-programs $(bindir)
+-      cd $(bindir) && (rm -f iniptex virptex platex; $(LN) ptex platex)
+-
+-# 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 ;\
+-              $(LN) ptex-euc.fmt ptex-jis.fmt ;\
+-              $(LN) platex-euc.fmt platex-jis.fmt)
+-      cd $(web2cdir) && (rm -f ptex.fmt platex.fmt ;\
+-              $(LN) ptex-$(configkcode).fmt ptex.fmt ;\
+-              $(LN) platex-$(configkcode).fmt platex.fmt )
++      cd $(bindir) && (rm -f iniptex virptex platex platex209; $(LN) ptex platex ; $(LN) ptex platex209)
+ # Auxiliary files.
+ install-data::
+@@ -323,6 +292,7 @@ distclean:: clean
+       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
diff --git a/texlive-2007-kpse-extensions.patch b/texlive-2007-kpse-extensions.patch
new file mode 100644 (file)
index 0000000..3c88469
--- /dev/null
@@ -0,0 +1,291 @@
+--- 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);
diff --git a/texlive-2007-makej.patch b/texlive-2007-makej.patch
new file mode 100644 (file)
index 0000000..44b4435
--- /dev/null
@@ -0,0 +1,55 @@
+--- 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
diff --git a/texlive-2007-pdvips.patch b/texlive-2007-pdvips.patch
new file mode 100644 (file)
index 0000000..0548f5b
--- /dev/null
@@ -0,0 +1,221 @@
+--- 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@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@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 ;
diff --git a/texlive-2007-ptex-3.1.10.patch b/texlive-2007-ptex-3.1.10.patch
new file mode 100644 (file)
index 0000000..aa763d7
--- /dev/null
@@ -0,0 +1,96 @@
+--- 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;
diff --git a/texlive-2007-tmpcleanup.patch b/texlive-2007-tmpcleanup.patch
new file mode 100644 (file)
index 0000000..e9f9978
--- /dev/null
@@ -0,0 +1,51 @@
+--- 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
diff --git a/texlive-Build_script.patch b/texlive-Build_script.patch
new file mode 100644 (file)
index 0000000..d466782
--- /dev/null
@@ -0,0 +1,38 @@
+---
+ 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
++
diff --git a/texlive-CVE-2007-4033.patch b/texlive-CVE-2007-4033.patch
new file mode 100644 (file)
index 0000000..939de51
--- /dev/null
@@ -0,0 +1,16 @@
+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: */
diff --git a/texlive-checklib_fixes.patch b/texlive-checklib_fixes.patch
new file mode 100644 (file)
index 0000000..0f397a3
--- /dev/null
@@ -0,0 +1,62 @@
+#! /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
diff --git a/texlive-dviljktemp.patch b/texlive-dviljktemp.patch
new file mode 100644 (file)
index 0000000..a955745
--- /dev/null
@@ -0,0 +1,942 @@
+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$ */
+-#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@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@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
diff --git a/texlive-dvips_fontbug_fix_upstream.patch b/texlive-dvips_fontbug_fix_upstream.patch
new file mode 100644 (file)
index 0000000..f4a0659
--- /dev/null
@@ -0,0 +1,896 @@
+---
+ 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@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@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@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@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@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@tug.org>
++
++      * config.ps (screen): add this, 8.25x11, for powerdot.  (From Akira.)
++
+ 2006-12-09  Karl Berry  <karl@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@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@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. 
diff --git a/texlive-dvipsoverflow.patch b/texlive-dvipsoverflow.patch
new file mode 100644 (file)
index 0000000..71f5dcd
--- /dev/null
@@ -0,0 +1,87 @@
+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) {
diff --git a/texlive-fedora_paths.patch b/texlive-fedora_paths.patch
new file mode 100644 (file)
index 0000000..cb04ffc
--- /dev/null
@@ -0,0 +1,66 @@
+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@-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@-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@-local
+ %   TEXMFSYSVAR = $TEXMFMAIN
+ % For using a separate tree:
+ %   TEXMFSYSVAR = @texmf@-var
+-TEXMFSYSVAR = @texmf@-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@-var
+ %   TEXMFSYSCONFIG = $TEXMFMAIN
+ % For using a separate tree:
+ %   TEXMFSYSCONFIG = @texmf@-config
+-TEXMFSYSCONFIG = @texmf@-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/web2c;/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
diff --git a/texlive-filter-requires.sh b/texlive-filter-requires.sh
new file mode 100644 (file)
index 0000000..a12af63
--- /dev/null
@@ -0,0 +1,2 @@
+#!/bin/sh
+/usr/lib/rpm/perl.req "$@" | grep -v 'perl(\(Win32\|only\|path_tre\|just\|Htex\|Pts\)'
diff --git a/texlive-fix_makempx_installation.patch b/texlive-fix_makempx_installation.patch
new file mode 100644 (file)
index 0000000..ecaf3fa
--- /dev/null
@@ -0,0 +1,21 @@
+64_fix_makempx_installation by Sanjoy Mahajan <sanjoy@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
diff --git a/texlive-fix_pkfix_invocation.patch b/texlive-fix_pkfix_invocation.patch
new file mode 100644 (file)
index 0000000..1ed8b0f
--- /dev/null
@@ -0,0 +1,23 @@
+#! /bin/sh /usr/share/dpatch/dpatch-run
+## 11_fix_pkfix_invocation.dpatch  <preining@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
+ #
diff --git a/texlive-fmtutil-infloop.patch b/texlive-fmtutil-infloop.patch
new file mode 100644 (file)
index 0000000..b7d3ffd
--- /dev/null
@@ -0,0 +1,19 @@
+diff -up texlive-2007/texk/tetex/fmtutil.infloop texlive-2007/texk/tetex/fmtutil
+--- texlive-2007/texk/tetex/fmtutil.infloop    2008-03-12 10:51:14.000000000 +0100
++++ texlive-2007/texk/tetex/fmtutil    2008-03-12 16:53:05.000000000 +0100
+@@ -680,6 +680,15 @@
+   esac
+   rm -f $fmtfile
++
++  # Check for infinite recursion before running the iniTeX:
++  case :$mktexfmt_loop: in
++  *:"$format":*)
++    abort "Infinite recursion detected, giving up!" ;;
++  esac
++  mktexfmt_loop=$mktexfmt_loop:$format
++  export mktexfmt_loop
++
+   verboseMsg "$progname: running \`$engine -ini  $tcxflag $jobswitch $prgswitch $texargs' ..."
+   # run in a subshell to get a local effect of TEXPOOL manipulation:
diff --git a/texlive-fmtutil_keep_failedlog.patch b/texlive-fmtutil_keep_failedlog.patch
new file mode 100644 (file)
index 0000000..aecd6c8
--- /dev/null
@@ -0,0 +1,29 @@
+---
+ 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
+ }
+ ###############################################################################
diff --git a/texlive-generate-tarball.sh b/texlive-generate-tarball.sh
new file mode 100644 (file)
index 0000000..3b86a96
--- /dev/null
@@ -0,0 +1,20 @@
+#!/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
+
diff --git a/texlive-maketexmf.patch b/texlive-maketexmf.patch
new file mode 100644 (file)
index 0000000..9339819
--- /dev/null
@@ -0,0 +1,43 @@
+#! /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
diff --git a/texlive-man-context.patch b/texlive-man-context.patch
new file mode 100644 (file)
index 0000000..71b1ac2
--- /dev/null
@@ -0,0 +1,14 @@
+diff -up texlive-2007/texk/tetex/context/texmfstart.man.man-context texlive-2007/texk/tetex/context/texmfstart.man
+--- texlive-2007/texk/tetex/context/texmfstart.man.man-context 2007-01-19 04:53:28.000000000 +0100
++++ texlive-2007/texk/tetex/context/texmfstart.man     2008-01-22 12:15:12.000000000 +0100
+@@ -21,8 +21,8 @@ texmfstart \- run ConTeXt scripts, make 
+ \fB texmfstart\fP [ \fIoptions ...\fP ] [ \fIfilename\fP ] [ \fIarguments ...\fP ]
+ .SH "DESCRIPTION" 
+-ConTeXt is a typesetting system based on 
+-the .BR tex (1)
++ConTeXt is a typesetting system based on the
++.BR tex (1)
+ family of programs.
+ .B texmfstart
+ is a ConTeXt meta-script that can run subordinate
diff --git a/texlive-man-notetex.patch b/texlive-man-notetex.patch
new file mode 100644 (file)
index 0000000..9574eba
--- /dev/null
@@ -0,0 +1,400 @@
+diff -up texlive-2007/texk/makeindexk/mkindex.1.notetex texlive-2007/texk/makeindexk/mkindex.1
+--- texlive-2007/texk/makeindexk/mkindex.1.notetex     2006-01-17 22:41:51.000000000 +0100
++++ texlive-2007/texk/makeindexk/mkindex.1     2008-01-17 13:17:46.000000000 +0100
+@@ -1,4 +1,4 @@
+-.TH "mkindex" "1" "September 2000" "teTeX" "teTeX" 
++.TH "mkindex" "1" "September 2000" "TeXLive" "TeXLive" 
+ .PP 
+ .SH "NAME" 
+ mkindex \- script to process LaTeX index and glossary files
+@@ -27,7 +27,7 @@ MakeIndex glossary style file
+ .PP 
+ .SH "BUGS" 
+ .PP 
+-None known, but report any bugs found to <tetex@informatik\&.uni-hannover\&.de> (mailing list)\&.
++None known, but report any bugs found to <tex-live@tug\&.org> (mailing list)\&.
+ .PP 
+ .SH "AUTHOR" 
+ .PP 
+diff -up texlive-2007/texk/dvipdfm/dvipdft.1.notetex texlive-2007/texk/dvipdfm/dvipdft.1
+--- texlive-2007/texk/dvipdfm/dvipdft.1.notetex        2006-01-17 22:41:51.000000000 +0100
++++ texlive-2007/texk/dvipdfm/dvipdft.1        2008-01-17 13:17:46.000000000 +0100
+@@ -1,4 +1,4 @@
+-.TH "dvipdft" "1" "May 2004" "teTeX" "teTeX" 
++.TH "dvipdft" "1" "May 2004" "TeXLive" "TeXLive" 
+ .PP 
+ .SH "NAME" 
+ dvipdft \- create thumbnail images for use with dvipdfm
+diff -up texlive-2007/texk/dvipdfm/ebb.1.notetex texlive-2007/texk/dvipdfm/ebb.1
+--- texlive-2007/texk/dvipdfm/ebb.1.notetex    2006-01-17 22:41:51.000000000 +0100
++++ texlive-2007/texk/dvipdfm/ebb.1    2008-01-17 13:17:46.000000000 +0100
+@@ -1,4 +1,4 @@
+-.TH "ebb" "1" "May 2004" "teTeX" "teTeX" 
++.TH "ebb" "1" "May 2004" "TeXLive" "TeXLive" 
+ .PP 
+ .SH "NAME" 
+ ebb \- extract a bounding box from JPEG, PNG, and PDF files
+diff -up texlive-2007/texk/tetex/texdoc.man.notetex texlive-2007/texk/tetex/texdoc.man
+--- texlive-2007/texk/tetex/texdoc.man.notetex 2008-01-17 13:17:46.000000000 +0100
++++ texlive-2007/texk/tetex/texdoc.man 2008-01-17 17:55:26.000000000 +0100
+@@ -9,7 +9,7 @@
+ .ft R
+ .fi
+ ..
+-.TH "texdoc" "1" "September 2000" "teTeX" "teTeX" 
++.TH "texdoc" "1" "September 2000" "TeXLive" "TeXLive" 
+ .PP 
+ .SH "NAME" 
+ texdoc \- Utility to look up TeX documentation
+@@ -23,7 +23,7 @@ texdoc \- Utility to look up TeX documen
+ \fBtexdoc\fP seaches for \fINAME\fP in the TeX documentation and
+ starts an appropriate viewer\&.
+ .PP 
+-\fINAME\fP should be the name of a command or package in the teTeX
++\fINAME\fP should be the name of a command or package in the TeX
+ distribution\&.
+ .PP 
+ .SH "OPTIONS" 
+@@ -87,11 +87,11 @@ search order can be configured in \fItex
+ .PP 
+ \fBxdg-open\fP(1), \fBxdvi\fP(1)
+ .PP 
+-Web page: <http://tug\&.org/teTeX/>
++Web page: <http://tug\&.org/texlive/>
+ .PP 
+ .SH "BUGS" 
+ .PP 
+-None known, but report any bugs found to <tetex@dbs\&.uni-hannover\&.de> (mailing list)\&.
++None known, but report any bugs found to <tex-live@tug\&.org> (mailing list)\&.
+ .PP 
+ .SH "AUTHOR" 
+ .PP 
+diff -up texlive-2007/texk/tetex/fmtutil.man.notetex texlive-2007/texk/tetex/fmtutil.man
+--- texlive-2007/texk/tetex/fmtutil.man.notetex        2006-01-17 22:41:51.000000000 +0100
++++ texlive-2007/texk/tetex/fmtutil.man        2008-01-17 18:01:11.000000000 +0100
+@@ -1,4 +1,4 @@
+-.TH "fmtutil" "8" "February 2005" "teTeX" "teTeX" 
++.TH "fmtutil" "8" "February 2005" "TeXLive" "TeXLive" 
+ .PP 
+ .SH "NAME" 
+ fmtutil \- utility for maintaining TeX format files
+@@ -63,11 +63,11 @@ default configuration file
+ .PP 
+ \fBkpsewhich\fP(1)
+ .PP 
+-Web page: <http://tug\&.org/teTeX/>
++Web page: <http://tug\&.org/texlive/>
+ .PP 
+ .SH "BUGS" 
+ .PP 
+-None known, but report any bugs found to <tetex@dbs\&.uni-hannover\&.de> (mailing list)\&.
++None known, but report any bugs found to <tex-live@tug\&.org> (mailing list)\&.
+ .PP 
+ .SH "AUTHOR" 
+ .PP 
+diff -up texlive-2007/texk/tetex/dvired.man.notetex texlive-2007/texk/tetex/dvired.man
+--- texlive-2007/texk/tetex/dvired.man.notetex 2006-01-17 22:41:51.000000000 +0100
++++ texlive-2007/texk/tetex/dvired.man 2008-01-17 17:53:33.000000000 +0100
+@@ -1,4 +1,4 @@
+-.TH dvired 1 "09/94" "teTeX" "teTeX"
++.TH dvired 1 "09/94" "TeXLive" "TeXLive"
+ .SH NAME
+ dvired \- print dvi-files
+ .SH SYNOPSIS
+diff -up texlive-2007/texk/tetex/fontinst.man.notetex texlive-2007/texk/tetex/fontinst.man
+--- texlive-2007/texk/tetex/fontinst.man.notetex       2006-01-17 22:41:51.000000000 +0100
++++ texlive-2007/texk/tetex/fontinst.man       2008-01-17 18:08:43.000000000 +0100
+@@ -1,4 +1,4 @@
+-.TH "fontinst" "1" "May 2000" "teTeX" "teTeX" 
++.TH "fontinst" "1" "May 2000" "TeXLive" "TeXLive" 
+ .PP 
+ .SH "NAME" 
+ fontinst \- utility to run TeX as fontinst 
+diff -up texlive-2007/texk/tetex/kpsewhere.man.notetex texlive-2007/texk/tetex/kpsewhere.man
+--- texlive-2007/texk/tetex/kpsewhere.man.notetex      2008-01-17 13:17:46.000000000 +0100
++++ texlive-2007/texk/tetex/kpsewhere.man      2008-01-17 17:57:17.000000000 +0100
+@@ -1,4 +1,4 @@
+-.TH "kpsewhere" "1" "March 2004" "teTeX" "teTeX" 
++.TH "kpsewhere" "1" "March 2004" "TeXLive" "TeXLive" 
+ .PP 
+ .SH "NAME" 
+ kpsewhere \- Expanding \fBkpsewhich\fP to separately iterate over each
+@@ -28,11 +28,11 @@ all other options are directly handed to
+ .PP 
+ \fIKpathsea: A library for path searching\fP (info or DVI file)
+ .PP 
+-Web page: <http://tug\&.org/teTeX/>
++Web page: <http://tug\&.org/texlive/>
+ .PP 
+ .SH "BUGS" 
+ .PP 
+-None known, but report any bugs found to <tetex@dbs\&.uni-hannover\&.de> (mailing list)\&.
++None known, but report any bugs found to <tex-live@tug\&.org> (mailing list)\&.
+ .PP 
+ .SH "AUTHOR" 
+ .PP 
+diff -up texlive-2007/texk/tetex/texconfig.man.notetex texlive-2007/texk/tetex/texconfig.man
+--- texlive-2007/texk/tetex/texconfig.man.notetex      2006-01-17 22:41:51.000000000 +0100
++++ texlive-2007/texk/tetex/texconfig.man      2008-01-17 18:03:13.000000000 +0100
+@@ -1,8 +1,8 @@
+-.TH texconfig 1 "February 2005" "teTeX" "teTeX"
++.TH texconfig 1 "February 2005" "TeXLive" "TeXLive"
+ .SH NAME
+-texconfig \- configures teTeX
++texconfig \- configures TeXLive
+ .LP
+-texconfig-sys \- configures teTeX system\-wide
++texconfig-sys \- configures TeXLive system\-wide
+ .SH SYNOPSIS
+ .B texconfig
+ .LP
+@@ -10,7 +10,7 @@ texconfig-sys \- configures teTeX system
+ .SH DESCRIPTION
+ .I texconfig
+ allows to configure and maintain
+-.I teTeX
++.I TeXLive
+ in an easy and convenient manner. It uses the
+ .I dialog
+ program to draw nice input boxes. After answering the dialoges, the
+diff -up texlive-2007/texk/tetex/fmtutil.cnf.5.notetex texlive-2007/texk/tetex/fmtutil.cnf.5
+--- texlive-2007/texk/tetex/fmtutil.cnf.5.notetex      2006-01-17 22:41:51.000000000 +0100
++++ texlive-2007/texk/tetex/fmtutil.cnf.5      2008-01-17 13:17:46.000000000 +0100
+@@ -1,4 +1,4 @@
+-.TH "fmtutil\&.cnf" "5" "October 2000" "teTeX" "teTeX" 
++.TH "fmtutil\&.cnf" "5" "October 2000" "TeXLive" "TeXLive" 
+ .PP 
+ .SH "NAME" 
+ fmtutil\&.cnf \- configuration file for fmtutil
+@@ -55,11 +55,11 @@ hyphenation pattern file
+ \fBamstex\fP(1), \fBetex\fP(1), \fBfmtutil\fP(8),
+ \fBtex\fP(1), \fBtexconfig\fP(8), \fBtexlinks\fP(8)\&.
+ .PP 
+-Web page: <http://tug\&.org/teTeX/>
++Web page: <http://tug\&.org/texlive/>
+ .PP 
+ .SH "BUGS" 
+ .PP 
+-None known, but report any bugs found to <tetex@dbs\&.uni-hannover\&.de> (mailing list)\&.
++None known, but report any bugs found to <tex-live@tug\&.org> (mailing list)\&.
+ .PP 
+ .SH "AUTHOR" 
+ .PP 
+diff -up texlive-2007/texk/tetex/e2pall.man.notetex texlive-2007/texk/tetex/e2pall.man
+--- texlive-2007/texk/tetex/e2pall.man.notetex 2006-01-17 22:41:51.000000000 +0100
++++ texlive-2007/texk/tetex/e2pall.man 2008-01-17 18:00:18.000000000 +0100
+@@ -1,4 +1,4 @@
+-.TH "e2pall" "1" "August 2000" "teTeX" "teTeX" 
++.TH "e2pall" "1" "August 2000" "TeXLive" "TeXLive" 
+ .PP 
+ .SH "NAME" 
+ e2pall \- convert all EPS files in a LaTeX document to PDF
+diff -up texlive-2007/texk/tetex/thumbpdf.man.notetex texlive-2007/texk/tetex/thumbpdf.man
+--- texlive-2007/texk/tetex/thumbpdf.man.notetex       2008-01-17 13:17:46.000000000 +0100
++++ texlive-2007/texk/tetex/thumbpdf.man       2008-01-17 17:58:17.000000000 +0100
+@@ -1,4 +1,4 @@
+-.TH "thumbpdf" "1" "September 2000" "teTeX" "teTeX" 
++.TH "thumbpdf" "1" "September 2000" "TeXLive" "TeXLive" 
+ .PP 
+ .SH "NAME" 
+ thumbpdf \- generate thumbnail images for a PDF file
+@@ -75,7 +75,7 @@ for which a user wants to generate thumb
+ .PP 
+ \fBgs\fP(1), \fBpdftex\fP(1)\&.
+ .PP 
+-Web page: <http://tug\&.org/teTeX/>
++Web page: <http://tug\&.org/texlive/>
+ .PP 
+ .SH "BUGS" 
+ .PP 
+diff -up texlive-2007/texk/tetex/allec.man.notetex texlive-2007/texk/tetex/allec.man
+--- texlive-2007/texk/tetex/allec.man.notetex  2006-01-17 22:41:51.000000000 +0100
++++ texlive-2007/texk/tetex/allec.man  2008-01-17 18:02:16.000000000 +0100
+@@ -1,4 +1,4 @@
+-.TH alldc 1 "11/94" "teTeX" "teTeX"
++.TH alldc 1 "11/94" "TeXLive" "TeXLive"
+ .SH NAME
+ allec \- force the most important ec\-fonts to be calculated
+ .SH SYNOPSIS
+diff -up texlive-2007/texk/tetex/texlinks.man.notetex texlive-2007/texk/tetex/texlinks.man
+--- texlive-2007/texk/tetex/texlinks.man.notetex       2008-01-17 13:17:46.000000000 +0100
++++ texlive-2007/texk/tetex/texlinks.man       2008-01-17 17:59:32.000000000 +0100
+@@ -1,4 +1,4 @@
+-.TH "texlinks" "8" "September 2000" "teTeX" "teTeX" 
++.TH "texlinks" "8" "September 2000" "TeXLive" "TeXLive" 
+ .PP 
+ .SH "NAME" 
+ texlinks \- maintain symbolic links from format to engine
+@@ -45,11 +45,11 @@ default configuration file
+ .PP 
+ \fBfmtutil\fP(1), \fBfmtutil\&.cnf\fP(5)
+ .PP 
+-Web page: <http://tug\&.org/teTeX/>
++Web page: <http://tug\&.org/texlive/>
+ .PP 
+ .SH "BUGS" 
+ .PP 
+-None known, but report any bugs found to <tetex@dbs\&.uni-hannover\&.de> (mailing list)\&.
++None known, but report any bugs found to <tex-live@tug\&.org> (mailing list)\&.
+ .PP 
+ .SH "AUTHOR" 
+ .PP 
+diff -up texlive-2007/texk/tetex/mkofm.man.notetex texlive-2007/texk/tetex/mkofm.man
+--- texlive-2007/texk/tetex/mkofm.man.notetex  2006-01-17 22:41:51.000000000 +0100
++++ texlive-2007/texk/tetex/mkofm.man  2008-01-17 18:08:22.000000000 +0100
+@@ -1,4 +1,4 @@
+-.TH "mkofm" "1" "September 2000" "teTeX" "teTeX" 
++.TH "mkofm" "1" "September 2000" "TeXLive" "TeXLive" 
+ .PP 
+ .SH "NAME" 
+ mkofm \- front end to \fBmktextfm\fP(1)
+diff -up texlive-2007/texk/tetex/updmap.man.notetex texlive-2007/texk/tetex/updmap.man
+--- texlive-2007/texk/tetex/updmap.man.notetex 2006-01-17 22:41:51.000000000 +0100
++++ texlive-2007/texk/tetex/updmap.man 2008-01-17 18:07:21.000000000 +0100
+@@ -1,4 +1,4 @@
+-.TH "updmap" "1" "February 2005" "teTeX" "teTeX"
++.TH "updmap" "1" "February 2005" "TeXLive" "TeXLive"
+ .PP
+ .SH "NAME"
+ updmap \- Update font map files for TeX output drivers\&.
+@@ -206,7 +206,7 @@ forces all fonts to be downloaded, so th
+ \fBxdvi\fP(1) and \fBps2pk\fP(1)\&.
+ .IP
+ .PP
+-teTeX configuration files for \fBdvips\fP(1) tuned for use with \fBupdmap\fP:
++TeXLive configuration files for \fBdvips\fP(1) tuned for use with \fBupdmap\fP:
+ .IP
+ .IP "\fIconfig\&.builtin35\fP"
+ Loads \fIbuildin35\&.map\fP instead
+@@ -231,7 +231,7 @@ of \fIpsfonts\&.map\fP\&.
+ .IP "\fIconfig\&.www\fP"
+ Loads \fIpsfonts_t1\&.map\fP instead
+ of \fIpsfonts\&.map\fP\&.
+-(For compatibility with previous versions of teTeX\&.)
++(For compatibility with previous versions of teTeX and TeXLive\&.)
+ .IP
+ .IP "\fIconfig\&.gstopk\fP"
+ Loads \fIpsfonts_t1\&.map\fP instead
+@@ -244,11 +244,11 @@ of \fIpsfonts\&.map\fP\&.
+ \fBgsftopk\fP(1), \fBpdftex\fP(1), \fBps2pk\fP(1),
+ \fBtexhash\fP(1), \fBxdvi\fP(1)\&.
+ .PP
+-Web page: \fI<http://tug\&.org/teTeX/>\fP
++Web page: \fI<http://tug\&.org/texlive/>\fP
+ .PP
+ .SH "BUGS"
+ .PP
+-None known, but report any bugs found to <tetex@dbs\&.uni-hannover\&.de> (mailing list)\&.
++None known, but report any bugs found to <tex-live@tug\&.org> (mailing list)\&.
+ .PP
+ .SH "AUTHOR"
+ .PP
+diff -up texlive-2007/texk/tetex/rumakeindex.man.notetex texlive-2007/texk/tetex/rumakeindex.man
+--- texlive-2007/texk/tetex/rumakeindex.man.notetex    2006-01-17 22:41:51.000000000 +0100
++++ texlive-2007/texk/tetex/rumakeindex.man    2008-01-17 17:56:25.000000000 +0100
+@@ -1,4 +1,4 @@
+-.TH "rumakeindex" "1" "September 2000" "teTeX" "teTeX" 
++.TH "rumakeindex" "1" "September 2000" "TeXLive" "TeXLive" 
+ .PP 
+ .SH "NAME" 
+ rumakeindex \- process a LaTeX index using Russian Cyrillic
+diff -up texlive-2007/texk/tetex/kpsetool.man.notetex texlive-2007/texk/tetex/kpsetool.man
+--- texlive-2007/texk/tetex/kpsetool.man.notetex       2006-01-17 22:41:51.000000000 +0100
++++ texlive-2007/texk/tetex/kpsetool.man       2008-01-17 17:50:19.000000000 +0100
+@@ -1,7 +1,7 @@
+-.TH "kpsetool" "1" "September 2000" "teTeX" "teTeX" 
++.TH "kpsetool" "1" "September 2000" "TeXLive" "TeXLive" 
+ .PP 
+ .SH "NAME" 
+-kpsetool \- script to make teTeX-style \fBkpsetool\fP,
++kpsetool \- script to make TeXLive-style \fBkpsetool\fP,
+ \fBkpsexpand\fP, and \fBkpsepath\fP available
+ .PP 
+ .SH "SYNOPSIS" 
+@@ -14,11 +14,8 @@ kpsetool \- script to make teTeX-style \
+ .PP 
+ .SH "DESCRIPTION" 
+ .PP 
+-\fBkpsetool\fP is a Bourne shell script that makes a teTeX-style
++\fBkpsetool\fP is a Bourne shell script that makes a TeXLive-style
+ \fBkpsetool\fP, \fBkpsexpand\fP, and \fBkpsepath\fP available\&.
+-\fBkpsetool\fP uses \fBweb2c\fP\'s (new) \fBkpsexpand\fP binary, so the
+-syntax for \fBkpsexpand\fP is incompatible with teTeX\'s as of version
+-0\&.4\&.
+ .PP 
+ .SH "OPTIONS" 
+ .PP 
+@@ -86,11 +83,11 @@ virtual font
+ .PP 
+ \fIKpathsea: A library for path searching\fP (info or DVI file)
+ .PP 
+-Web page: <http://tug\&.org/teTeX/>
++Web page: <http://tug\&.org/texlive/>
+ .PP 
+ .SH "BUGS" 
+ .PP 
+-None known, but report any bugs found to <tetex@dbs\&.uni-hannover\&.de> (mailing list)\&.
++None known, but report any bugs found to <tex-live@tug\&.org> (mailing list)\&.
+ .PP 
+ .SH "AUTHOR" 
+ .PP 
+diff -up texlive-2007/texk/tetex/updmap.cfg.5.notetex texlive-2007/texk/tetex/updmap.cfg.5
+--- texlive-2007/texk/tetex/updmap.cfg.5.notetex       2006-01-17 22:41:51.000000000 +0100
++++ texlive-2007/texk/tetex/updmap.cfg.5       2008-01-17 13:17:46.000000000 +0100
+@@ -23,7 +23,7 @@
+ friends.
+ .SH "DESCRIPTION"
+ The file \fBupdmap.cfg\fR is the central font configuration file of a
+-teTeX system and is read by \fBupdmap\fP(1). It describes if and how
++TeX system and is read by \fBupdmap\fP(1). It describes if and how
+ fonts should be included (or not included) into PS-/PDF-files. This
+ works for Outline (Postscript Type1) and Bitmap Fonts (Postscript
+ Type3) mostly coming from MetaFont.
+diff -up texlive-2007/texk/tetex/texdoctk.man.notetex texlive-2007/texk/tetex/texdoctk.man
+--- texlive-2007/texk/tetex/texdoctk.man.notetex       2006-01-17 22:41:51.000000000 +0100
++++ texlive-2007/texk/tetex/texdoctk.man       2008-01-17 18:06:40.000000000 +0100
+@@ -80,7 +80,7 @@ If you want to print the documentations,
+ non-PS files into PostScript. Here are some suggestions:
+ \& dvi->ps:
+-dvips (is part of teTeX) (http://www.radicaleye.com/dvips.html)
++dvips (is part of TeXLive) (http://www.radicaleye.com/dvips.html)
+ \& pdf->ps:
+ pdf2ps (http://www.cs.wisc.edu/~ghost) or
+diff -up texlive-2007/texk/tetex/allneeded.man.notetex texlive-2007/texk/tetex/allneeded.man
+--- texlive-2007/texk/tetex/allneeded.man.notetex      2006-01-17 22:41:51.000000000 +0100
++++ texlive-2007/texk/tetex/allneeded.man      2008-01-17 18:09:11.000000000 +0100
+@@ -1,4 +1,4 @@
+-.TH allneeded 1 "11/94" "teTeX" "teTeX"
++.TH allneeded 1 "11/94" "TeXLive" "TeXLive"
+ .SH NAME
+ allneeded \- force the calculation of all fonts now needed
+ .SH SYNOPSIS
+diff -up texlive-2007/texk/tetex/pslatex.man.notetex texlive-2007/texk/tetex/pslatex.man
+--- texlive-2007/texk/tetex/pslatex.man.notetex        2006-01-17 22:41:51.000000000 +0100
++++ texlive-2007/texk/tetex/pslatex.man        2008-01-17 18:01:53.000000000 +0100
+@@ -1,4 +1,4 @@
+-.TH "pslatex" "1" "September 2000" "teTeX" "teTeX" 
++.TH "pslatex" "1" "September 2000" "TeXLive" "TeXLive" 
+ .PP 
+ .SH "NAME" 
+ pslatex \- utility to typeset LaTeX files using PostScript fonts
+diff -up texlive-2007/texk/tetex/rubibtex.man.notetex texlive-2007/texk/tetex/rubibtex.man
+--- texlive-2007/texk/tetex/rubibtex.man.notetex       2006-01-17 22:41:51.000000000 +0100
++++ texlive-2007/texk/tetex/rubibtex.man       2008-01-17 17:58:46.000000000 +0100
+@@ -1,4 +1,4 @@
+-.TH "rubibtex" "1" "October 2000" "teTeX" "teTeX" 
++.TH "rubibtex" "1" "October 2000" "TeXLive" "TeXLive" 
+ .PP 
+ .SH "NAME" 
+ rubibtex \- make a bibliography for (La)TeX using Russian
+diff -up texlive-2007/texk/tetex/allcm.man.notetex texlive-2007/texk/tetex/allcm.man
+--- texlive-2007/texk/tetex/allcm.man.notetex  2006-01-17 22:41:51.000000000 +0100
++++ texlive-2007/texk/tetex/allcm.man  2008-01-17 17:54:07.000000000 +0100
+@@ -1,4 +1,4 @@
+-.TH allcm 1 "11/94" "teTeX" "teTeX"
++.TH allcm 1 "11/94" "TeXLive" "TeXLive"
+ .SH NAME
+ allcm \- force the most important Computer\-Modern\-fonts to be calculated
+ .SH SYNOPSIS
diff --git a/texlive-mktexlsr_fixes.patch b/texlive-mktexlsr_fixes.patch
new file mode 100644 (file)
index 0000000..dbb4e4d
--- /dev/null
@@ -0,0 +1,81 @@
+diff -up texlive-2007/texk/kpathsea/mktexlsr.man.mktexlsr_fixes texlive-2007/texk/kpathsea/mktexlsr.man
+--- texlive-2007/texk/kpathsea/mktexlsr.man.mktexlsr_fixes     2006-01-17 22:41:51.000000000 +0100
++++ texlive-2007/texk/kpathsea/mktexlsr.man    2008-01-06 16:13:33.000000000 +0100
+@@ -44,3 +44,12 @@ Print help message and exit.
+ .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.
+diff -up texlive-2007/texk/kpathsea/mktexlsr.mktexlsr_fixes texlive-2007/texk/kpathsea/mktexlsr
+--- texlive-2007/texk/kpathsea/mktexlsr.mktexlsr_fixes 2006-12-25 19:44:43.000000000 +0100
++++ texlive-2007/texk/kpathsea/mktexlsr        2008-01-06 16:37:22.000000000 +0100
+@@ -82,10 +82,21 @@ test $# = 0 && {
+ '
+   set x `kpsewhich --show-path=ls-R | tr : '
+ ' | sort | uniq`; shift
++  if test "`id -u`" -eq 0; then
++    NOROOTHOME=true
++  fi
+   IFS=$OIFS
+ }
+ for TEXMFLS_R in "$@"; do
++  if [ "z$HOME" != 'z' ]; then
++    case "$TEXMFLS_R" in
++    $HOME/*) if test -n "$NOROOTHOME"; then
++              tty -s && echo "$progname: Skipping $TEXMFLS_R" >&2
++              continue
++         fi ;;
++    esac
++  fi
+   # Prepend cwd if the directory was relative.
+   case "$TEXMFLS_R" in
+   "") continue ;;  # Strictly speaking, it is an error if this case is taken.
+@@ -112,9 +123,9 @@ for TEXMFLS_R in "$@"; do
+   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 +139,8 @@ for TEXMFLS_R in "$@"; do
+   # 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 +160,8 @@ for TEXMFLS_R in "$@"; do
+    | 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
diff --git a/texlive-more_paths.patch b/texlive-more_paths.patch
new file mode 100644 (file)
index 0000000..eeec225
--- /dev/null
@@ -0,0 +1,34 @@
+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.
diff --git a/texlive-pdftex.patch b/texlive-pdftex.patch
new file mode 100644 (file)
index 0000000..fd1b8ea
--- /dev/null
@@ -0,0 +1,85 @@
+--- 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$
+ */
++#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
diff --git a/texlive-poppler.patch b/texlive-poppler.patch
new file mode 100644 (file)
index 0000000..da56b34
--- /dev/null
@@ -0,0 +1,341 @@
+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
+-@XETEX_GENERIC@ EXTRALIBS = @LDLIBXPDF@ @LDLIBPNG@ @LDFONTCONFIG@
++@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)
diff --git a/texlive-source-CVE-2007-0650.patch b/texlive-source-CVE-2007-0650.patch
new file mode 100644 (file)
index 0000000..02d68b3
--- /dev/null
@@ -0,0 +1,101 @@
+--- 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 */
+ /*====================================================================*/
diff --git a/texlive-source-icu.patch b/texlive-source-icu.patch
new file mode 100644 (file)
index 0000000..f4f8f73
--- /dev/null
@@ -0,0 +1,100 @@
+--- 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
diff --git a/texlive-source-t1lib.patch b/texlive-source-t1lib.patch
new file mode 100644 (file)
index 0000000..74aa2c1
--- /dev/null
@@ -0,0 +1,50 @@
+--- 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++) {
diff --git a/texlive-source-warns.patch b/texlive-source-warns.patch
new file mode 100644 (file)
index 0000000..9c0fabf
--- /dev/null
@@ -0,0 +1,224 @@
+--- 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; \
+ }
diff --git a/texlive-source-x11r7.patch b/texlive-source-x11r7.patch
new file mode 100644 (file)
index 0000000..cf26900
--- /dev/null
@@ -0,0 +1,15 @@
+--- 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))
diff --git a/texlive-teckit.patch b/texlive-teckit.patch
new file mode 100644 (file)
index 0000000..2bda3ef
--- /dev/null
@@ -0,0 +1,14 @@
+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
diff --git a/texlive-texdoc.patch b/texlive-texdoc.patch
new file mode 100644 (file)
index 0000000..6d39671
--- /dev/null
@@ -0,0 +1,216 @@
+diff -up texlive-2007/texk/tetex/texdoc.man.texdoc texlive-2007/texk/tetex/texdoc.man
+--- texlive-2007/texk/tetex/texdoc.man.texdoc  2008-01-22 09:34:54.000000000 +0100
++++ texlive-2007/texk/tetex/texdoc.man 2008-01-22 09:37:03.000000000 +0100
+@@ -28,28 +28,37 @@ 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 
+ .SH "ENVIRONMENT" 
+ .PP 
+ .IP "\fB$TEXDOCVIEW_dvi\fP" 
+-DVI viewer\&.  Defaults to \fBxdvi\fP(1)\&.
++DVI viewer\&. The default is to use the program specified
++by the freedesktop standard\&.
+ .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 +75,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)
+ .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     2008-01-22 09:39:17.000000000 +0100
+@@ -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@imacs.polytechnique.fr>, Feb 15 2000
++#  * accept gzipped files on input
++#  * temporary directory set according to TMPDIR
++#    
++#    Frank Küster <frank@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
+ }
+@@ -91,13 +106,12 @@ case `(uname -s) 2>/dev/null` in
+         extlist='.pdf .ps .txt .dvi .html'
+       ;;
+   *)
+-      : ${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_dvi='(xdg-open %s) &'}
++      : ${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|"`
diff --git a/texlive.cron b/texlive.cron
new file mode 100644 (file)
index 0000000..79a5254
--- /dev/null
@@ -0,0 +1,4 @@
+#!/bin/bash
+# Remove TeX fonts not used in 180 days
+/usr/sbin/tmpwatch 4320 /var/lib/texmf
+exit 0
This page took 0.345221 seconds and 4 git commands to generate.