diff options
author | Patrick J Volkerding <volkerdi@slackware.com> | 2009-08-26 10:00:38 -0500 |
---|---|---|
committer | Eric Hameleers <alien@slackware.com> | 2018-05-31 22:41:17 +0200 |
commit | 5a12e7c134274dba706667107d10d231517d3e05 (patch) | |
tree | 55718d5acb710fde798d9f38d0bbaf594ed4b296 /source/t/tetex | |
download | current-5a12e7c134274dba706667107d10d231517d3e05.tar.gz |
Slackware 13.0slackware-13.0
Wed Aug 26 10:00:38 CDT 2009
Slackware 13.0 x86_64 is released as stable! Thanks to everyone who
helped make this release possible -- see the RELEASE_NOTES for the
credits. The ISOs are off to the replicator. This time it will be a
6 CD-ROM 32-bit set and a dual-sided 32-bit/64-bit x86/x86_64 DVD.
We're taking pre-orders now at store.slackware.com. Please consider
picking up a copy to help support the project. Once again, thanks to
the entire Slackware community for all the help testing and fixing
things and offering suggestions during this development cycle.
As always, have fun and enjoy! -P.
Diffstat (limited to 'source/t/tetex')
-rwxr-xr-x | source/t/tetex/jadetex.build | 68 | ||||
-rwxr-xr-x | source/t/tetex/profile.d/tetex.csh | 4 | ||||
-rwxr-xr-x | source/t/tetex/profile.d/tetex.sh | 4 | ||||
-rw-r--r-- | source/t/tetex/slack-desc.tetex | 20 | ||||
-rw-r--r-- | source/t/tetex/slack-desc.tetex-doc | 19 | ||||
-rw-r--r-- | source/t/tetex/tetex.CVE-2005-3193.diff | 169 | ||||
-rwxr-xr-x | source/t/tetex/tetex.SlackBuild | 255 | ||||
-rw-r--r-- | source/t/tetex/tetex.amstex.fmtutil.diff | 13 | ||||
-rw-r--r-- | source/t/tetex/tetex.browsers.diff | 39 | ||||
-rw-r--r-- | source/t/tetex/tetex.dvipdfm.mkstemp.diff | 20 | ||||
-rw-r--r-- | source/t/tetex/tetex.etex.diff | 11 | ||||
-rw-r--r-- | source/t/tetex/tetex.fontcachedirinhome.diff | 11 | ||||
-rw-r--r-- | source/t/tetex/tetex.scripts.mktemp.diff | 244 | ||||
-rw-r--r-- | source/t/tetex/tetex.tmp.cleanup.diff | 51 | ||||
-rw-r--r-- | source/t/tetex/tetex.var.fonts.diff | 11 |
15 files changed, 939 insertions, 0 deletions
diff --git a/source/t/tetex/jadetex.build b/source/t/tetex/jadetex.build new file mode 100755 index 00000000..0d76f7e9 --- /dev/null +++ b/source/t/tetex/jadetex.build @@ -0,0 +1,68 @@ +#!/bin/sh +# jadetex build/install script taken from Stuart Winter's build +# script for linuxdoc-tools. + +# Sanity check: +if [ -z "$SLKCFLAGS" ]; then + echo "This script is only meant to be run from tetex.SlackBuild," + echo "so I hope you know what you are doing." + echo -n "Hit Enter to continue anyway... " + read junk +fi + +JADETEXVER=3.13 + +# sgmltools-lite's POSTINSTALL document suggests that if jadetex +# is eating huge amounts of RAM, we need to configure it thusly: +# Slackware's t/tetex package contains this config file (without the +# .jadetext config) so I won't overwrite it here. However, we may +# wish to append this configuration to an install script for +# this package; but it'd get overwritten by new versions of +# t/tetex. Perhaps this configuration could be added to the tetex package? + + cat << EOF >> /usr/share/texmf/web2c/texmf.cnf + +% options for jadetex: +hash_extra.jadetex = 15000 +pool_size.jadetex = 200000 +max_strings.jadetex = 50000 +save_size.jadetex = 15000 +EOF +chmod 644 /usr/share/texmf/web2c/texmf.cnf + +# Extract source: +cd $TMP +rm -rf jadetex-$JADETEXVER +tar xvf $CWD/jadetex-$JADETEXVER.tar.gz || exit 1 +cd jadetex-$JADETEXVER +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +# Build: +# The install phase breaks if we use tex or etex, so we use latex instead: +sed -ie "s?tex -ini?latex -ini?" Makefile +make $NUMJOBS || make || exit 1 + +# Install onto filesystem: +make install || exit 1 + +# Create jadetex symlinks to the TeTex binaries: +( cd /usr/share/texmf/bin + rm -f jadetex pdfjadetex + ln -sf latex jadetex + ln -sf pdfetex pdfjadetex +) + +# Update the references to jadetex & pdfjadetex: +mktexlsr + +# Install man pages - these are missed by the Makefile: +mkdir -p /usr/share/texmf/man/man1 +install -m644 jadetex.1 pdfjadetex.1 /usr/share/texmf/man/man1 +gzip -9 /usr/share/texmf/man/man1/jadetex.1 +gzip -9 /usr/share/texmf/man/man1/pdfjadetex.1 + diff --git a/source/t/tetex/profile.d/tetex.csh b/source/t/tetex/profile.d/tetex.csh new file mode 100755 index 00000000..30496c4c --- /dev/null +++ b/source/t/tetex/profile.d/tetex.csh @@ -0,0 +1,4 @@ +#!/bin/csh +# Add path and MANPATH for teTeX: +set path = ( $path /usr/share/texmf/bin ) +setenv MANPATH ${MANPATH}:/usr/share/texmf/man diff --git a/source/t/tetex/profile.d/tetex.sh b/source/t/tetex/profile.d/tetex.sh new file mode 100755 index 00000000..8987135e --- /dev/null +++ b/source/t/tetex/profile.d/tetex.sh @@ -0,0 +1,4 @@ +#!/bin/sh +# Add PATH and MANPATH for teTeX: +PATH="$PATH:/usr/share/texmf/bin" +MANPATH="$MANPATH:/usr/share/texmf/man" diff --git a/source/t/tetex/slack-desc.tetex b/source/t/tetex/slack-desc.tetex new file mode 100644 index 00000000..ce66d03f --- /dev/null +++ b/source/t/tetex/slack-desc.tetex @@ -0,0 +1,20 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +tetex: tetex (teTeX binaries and support files) +tetex: +tetex: This package contains the binaries and support files required for the +tetex: teTeX TeX distribution, such as input files for TeX, runtime +tetex: configuration files, hyphenation tables, manpages, and the computer +tetex: modern fonts. +tetex: +tetex: +tetex: +tetex: +tetex: +tetex: diff --git a/source/t/tetex/slack-desc.tetex-doc b/source/t/tetex/slack-desc.tetex-doc new file mode 100644 index 00000000..7486398f --- /dev/null +++ b/source/t/tetex/slack-desc.tetex-doc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +tetex-doc: tetex-doc (Documentation for teTeX) +tetex-doc: +tetex-doc: This package contains documentation for AMSTeX, BibTeX, extended plain +tetex-doc: format, font packages, format files (babel, texdraw, pstricks, xypic), +tetex-doc: LaTeX, MetaPost, Makeindex, pdftex, the Kpathsea library, as well as +tetex-doc: general information about TeX such as a list of ftp servers, a draft +tetex-doc: for the TeX Directory Standard (TDS), The TeX and LaTeX Catalogue, +tetex-doc: TeX FAQs, and more. +tetex-doc: +tetex-doc: +tetex-doc: diff --git a/source/t/tetex/tetex.CVE-2005-3193.diff b/source/t/tetex/tetex.CVE-2005-3193.diff new file mode 100644 index 00000000..b8f2fad5 --- /dev/null +++ b/source/t/tetex/tetex.CVE-2005-3193.diff @@ -0,0 +1,169 @@ +--- tetex-src-3.0/libs/xpdf/goo/gmem.c.CVE-2005-3193 2004-01-22 02:26:44.000000000 +0100 ++++ tetex-src-3.0/libs/xpdf/goo/gmem.c 2006-01-16 15:41:04.000000000 +0100 +@@ -135,6 +135,28 @@ void *grealloc(void *p, int size) { + #endif + } + ++void *gmallocn(int nObjs, int objSize) { ++ int n; ++ ++ n = nObjs * objSize; ++ if (objSize == 0 || n / objSize != nObjs) { ++ fprintf(stderr, "Bogus memory allocation size\n"); ++ exit(1); ++ } ++ return gmalloc(n); ++} ++ ++void *greallocn(void *p, int nObjs, int objSize) { ++ int n; ++ ++ n = nObjs * objSize; ++ if (objSize == 0 || n / objSize != nObjs) { ++ fprintf(stderr, "Bogus memory allocation size\n"); ++ exit(1); ++ } ++ return grealloc(p, n); ++} ++ + void gfree(void *p) { + #ifdef DEBUG_MEM + int size; +--- tetex-src-3.0/libs/xpdf/goo/gmem.h.CVE-2005-3193 2004-01-22 02:26:44.000000000 +0100 ++++ tetex-src-3.0/libs/xpdf/goo/gmem.h 2006-01-16 15:41:04.000000000 +0100 +@@ -28,6 +28,15 @@ extern void *gmalloc(int size); + extern void *grealloc(void *p, int size); + + /* ++ * These are similar to gmalloc and grealloc, but take an object count ++ * and size. The result is similar to allocating nObjs * objSize ++ * bytes, but there is an additional error check that the total size ++ * doesn't overflow an int. ++ */ ++extern void *gmallocn(int nObjs, int objSize); ++extern void *greallocn(void *p, int nObjs, int objSize); ++ ++/* + * Same as free, but checks for and ignores NULL pointers. + */ + extern void gfree(void *p); +--- tetex-src-3.0/libs/xpdf/xpdf/JPXStream.cc.CVE-2005-3193 2004-01-22 02:26:45.000000000 +0100 ++++ tetex-src-3.0/libs/xpdf/xpdf/JPXStream.cc 2006-01-16 15:41:04.000000000 +0100 +@@ -666,7 +666,7 @@ GBool JPXStream::readCodestream(Guint le + int segType; + GBool haveSIZ, haveCOD, haveQCD, haveSOT; + Guint precinctSize, style; +- Guint segLen, capabilities, comp, i, j, r; ++ Guint segLen, capabilities, nTiles, comp, i, j, r; + + //----- main header + haveSIZ = haveCOD = haveQCD = haveSOT = gFalse; +@@ -701,8 +701,13 @@ GBool JPXStream::readCodestream(Guint le + / img.xTileSize; + img.nYTiles = (img.ySize - img.yTileOffset + img.yTileSize - 1) + / img.yTileSize; +- img.tiles = (JPXTile *)gmalloc(img.nXTiles * img.nYTiles * +- sizeof(JPXTile)); ++ nTiles = img.nXTiles * img.nYTiles; ++ // check for overflow before allocating memory ++ if (nTiles == 0 || nTiles / img.nXTiles != img.nYTiles) { ++ error(getPos(), "Bad tile count in JPX SIZ marker segment"); ++ return gFalse; ++ } ++ img.tiles = (JPXTile *)gmallocn(nTiles, sizeof(JPXTile)); + for (i = 0; i < img.nXTiles * img.nYTiles; ++i) { + img.tiles[i].tileComps = (JPXTileComp *)gmalloc(img.nComps * + sizeof(JPXTileComp)); +--- tetex-src-3.0/libs/xpdf/xpdf/Stream.h.CVE-2005-3193 2004-01-22 02:26:45.000000000 +0100 ++++ tetex-src-3.0/libs/xpdf/xpdf/Stream.h 2006-01-16 15:41:04.000000000 +0100 +@@ -233,6 +233,8 @@ public: + + ~StreamPredictor(); + ++ GBool isOk() { return ok; } ++ + int lookChar(); + int getChar(); + +@@ -250,6 +252,7 @@ private: + int rowBytes; // bytes per line + Guchar *predLine; // line buffer + int predIdx; // current index in predLine ++ GBool ok; + }; + + //------------------------------------------------------------------------ +--- tetex-src-3.0/libs/xpdf/xpdf/Stream.cc.CVE-2005-3193 2004-01-22 02:26:45.000000000 +0100 ++++ tetex-src-3.0/libs/xpdf/xpdf/Stream.cc 2006-01-16 15:41:04.000000000 +0100 +@@ -407,18 +407,33 @@ void ImageStream::skipLine() { + + StreamPredictor::StreamPredictor(Stream *strA, int predictorA, + int widthA, int nCompsA, int nBitsA) { ++ int totalBits; ++ + str = strA; + predictor = predictorA; + width = widthA; + nComps = nCompsA; + nBits = nBitsA; ++ predLine = NULL; ++ ok = gFalse; + + nVals = width * nComps; ++ totalBits = nVals * nBits; ++ if (totalBits == 0 || ++ (totalBits / nBits) / nComps != width || ++ totalBits + 7 < 0) { ++ return; ++ } + pixBytes = (nComps * nBits + 7) >> 3; +- rowBytes = ((nVals * nBits + 7) >> 3) + pixBytes; ++ rowBytes = ((totalBits + 7) >> 3) + pixBytes; ++ if (rowBytes < 0) { ++ return; ++ } + predLine = (Guchar *)gmalloc(rowBytes); + memset(predLine, 0, rowBytes); + predIdx = rowBytes; ++ ++ ok = gTrue; + } + + StreamPredictor::~StreamPredictor() { +@@ -1012,6 +1027,10 @@ LZWStream::LZWStream(Stream *strA, int p + FilterStream(strA) { + if (predictor != 1) { + pred = new StreamPredictor(this, predictor, columns, colors, bits); ++ if (!pred->isOk()) { ++ delete pred; ++ pred = NULL; ++ } + } else { + pred = NULL; + } +@@ -2897,6 +2916,14 @@ GBool DCTStream::readBaselineSOF() { + height = read16(); + width = read16(); + numComps = str->getChar(); ++ if (numComps <= 0 || numComps > 4) { ++ error(getPos(), "Bad number of components in DCT stream", prec); ++ return gFalse; ++ } ++ if (numComps <= 0 || numComps > 4) { ++ error(getPos(), "Bad number of components in DCT stream", prec); ++ return gFalse; ++ } + if (prec != 8) { + error(getPos(), "Bad DCT precision %d", prec); + return gFalse; +@@ -3255,6 +3282,10 @@ FlateStream::FlateStream(Stream *strA, i + FilterStream(strA) { + if (predictor != 1) { + pred = new StreamPredictor(this, predictor, columns, colors, bits); ++ if (!pred->isOk()) { ++ delete pred; ++ pred = NULL; ++ } + } else { + pred = NULL; + } diff --git a/source/t/tetex/tetex.SlackBuild b/source/t/tetex/tetex.SlackBuild new file mode 100755 index 00000000..f1927332 --- /dev/null +++ b/source/t/tetex/tetex.SlackBuild @@ -0,0 +1,255 @@ +#!/bin/sh + +# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, Minnesota, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED +# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO +# EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; +# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, +# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR +# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF +# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + + +VERSION=3.0 +ARCH=${ARCH:-x86_64} +NUMJOBS=${NUMJOBS:-" -j7 "} +BUILD=${BUILD:-6} + +CWD=$(pwd) +TMP=${TMP:-/tmp} + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" +fi + +# There were so many local security problems with this shared fontcache +# scheme that it's not worth trying to support. It was not enabled by +# default, and newer versions of teTeX don't seem to recongnize it any +# longer either. +#export fontcache=/var/cache/fonts +#export vartexfonts=$fontcache +#mkdir -p /var/cache/fonts/pk /var/cache/fonts/source /var/cache/fonts/tfm +#chmod 1777 /var/cache/fonts /var/cache/fonts/pk \ +# /var/cache/fonts/source /var/cache/fonts/tfm + +# Safer to purge this first: +rm -rf /usr/share/texmf +rm -rf /usr/share/texmf-var +rm -rf /usr/share/texi2html + +# Make a clean new directory: +mkdir -p /usr/share/texmf +( cd /usr/share/texmf + tar xvf $CWD/tetex-texmf-$VERSION.tar.xz + chown -R root:root . + find . -type f -perm 666 -exec chmod 644 {} \; +) +cd $TMP +rm -rf tetex-src-$VERSION +tar xvf $CWD/tetex-src-$VERSION.tar.xz +cd tetex-src-$VERSION +chown -R root:root . +find . -type f -perm 666 -exec chmod 644 {} \; + +# Fix possible xpdf overflows: +zcat $CWD/tetex.CVE-2005-3193.diff.gz | patch -p1 --verbose || exit 1 + +# /var/lib/texmf is a better font location than /var/tmp/texfonts: +zcat $CWD/tetex.var.fonts.diff.gz | patch -p1 --verbose || exit 1 + +# Even better is something in your $HOME directory: +zcat $CWD/tetex.fontcachedirinhome.diff.gz | patch -p1 --verbose || exit 1 + +# Use mkstemp() in dvipdfm: +zcat $CWD/tetex.dvipdfm.mkstemp.diff.gz | patch -p1 --verbose || exit 1 + +# Use mktemp in scripts: +zcat $CWD/tetex.scripts.mktemp.diff.gz | patch -p1 --verbose || exit 1 + +# Try to use more modern browsers. +# Attempt to use them in this order: firefox, seamonkey, mozilla, links, lynx. +zcat $CWD/tetex.browsers.diff.gz | patch -p1 --verbose || exit 1 + +# Add bplain and bamstex info to fmtutil.cnf: +zcat $CWD/tetex.amstex.fmtutil.diff.gz | patch -p1 --verbose || exit 1 + +# Don't leave texconfig junk in $TMP: +zcat $CWD/tetex.tmp.cleanup.diff.gz | patch -p1 --verbose || exit 1 + +CFLAGS="$SLKCFLAGS" \ +CXXFLAGS="$SLKCFLAGS" \ +./configure --prefix=/usr/share/texmf \ + --datadir=/usr/share \ + --disable-multiplatform \ + --disable-a4 \ + --without-dialog \ + --without-texinfo \ + --with-system-ncurses \ + --with-system-pnglib \ + --with-system-t1lib \ + --with-system-tifflib \ + --with-system-zlib \ + --with-ps=gs \ + --enable-ipc \ + --enable-freetype \ + --with-etex +# --without-texinfo # Really, it doesn't hurt to include these twice... + +# This was reported to fix a problem with newer GNU sources and "make dvi". +# It does, in fact, fix a bug where the etex binary/engine really should be +# used when etex and dvi output are requested, but the example given to me +# (which was "make dvi" in GNU binutils) also has some problems that have to +# be fixed. This confused me for a good long time. ;-) +# BTW, the fix for the binutils docs is to edit bfd.texinfo and remove that +# @tex through @end tex section near the top. Then build twice. Hit enter +# if it "sticks". +zcat $CWD/tetex.etex.diff.gz | patch -p1 --verbose || exit 1 + +make all $NUMJOBS || make all || exit 1 +make install strip || exit 1 + +if ! echo $PATH | grep /usr/share/texmf/bin ; then + PATH=$PATH:/usr/share/texmf/bin +fi +# ... [don't] make links to all binaries in /usr/bin for the final package. +# [that would be really pointless... $PATH should work, period. ] + +# If latex isn't there, maybe we need to do this: +if [ ! -r /usr/share/texmf/bin/latex ]; then + texconfig init +fi + +# Let's start with these defaults: +texconfig confall +texconfig dvips paper letter +texconfig xdvi paper us + +# These *might* be useful... +# Some are known to be not-so-useful, though, as they put the config files +# into /root/.texmf-config, which we're simply going to throw away anyway +# so it won't interfere with server testing. If you need these options, +# you'll probably have to run texconfig yourself in your own user (or root) +# account. +texconfig mode ljfour +#texconfig xdvi paper a4 +texconfig dvips mode ljfour +#texconfig dvips paper a4 +texconfig dvips printcmd - +texconfig dvips add bjc600 +texconfig dvips add stcolor +texconfig dvips add deskjet +texconfig dvips add ljet4 +texconfig dvips -P bjc600 mode canonbjc +texconfig dvips -P stcolor mode epstylus +texconfig dvips -P deskjet mode deskjet +texconfig dvips -P ljet4 mode ljfour +texconfig font ro +texconfig rehash + +# Add jadetex to the package: +. $CWD/jadetex.build + +# Toss redundant docs: +( cd /usr/share/texmf/doc + for file in $(find . -name "*.dvi") ; do + rm -f $(dirname $file)/$(basename $file .dvi).pdf + done +) + +# Discard local configurations: +if [ -e /root/.texmf-config ]; then + mv /root/.texmf-config /root/.texmf-config-$(mcookie) + echo "/root/.texmf-config moved out of the way... you may wish" + echo "to purge any /root/.texmf-config-* directories if the" + echo "cruft heap gets too large." +fi + +# Now, package the /usr/share/texmf/ and /usr/share/texi2html trees. +# Package tetex-doc.txz and tetex-bin.txz seperately. + +PKG1=$TMP/package-tetex +PKG2=$TMP/package-tetex-doc +rm -rf $PKG1 $PKG2 +mkdir -p $PKG1 $PKG2 + +mkdir -p $PKG1/usr/share +mv /usr/share/texmf $PKG1/usr/share +mv /usr/share/texmf-var $PKG1/usr/share +mv /usr/share/texi2html $PKG1/usr/share + +# The tetex.txz file will need an installation script to add +# /usr/share/texmf/bin to the $PATH and /usr/share/texmf/man to the $MANPATH: +mkdir -p $PKG1/etc/profile.d +cp -a $CWD/profile.d/tetex.* $PKG1/etc/profile.d +chown root:root $PKG1/etc/profile.d/tetex.* +chmod 755 $PKG1/etc/profile.d/tetex.* + +mkdir -p $PKG1/install +cp $CWD/slack-desc.tetex $PKG1/install/slack-desc +mkdir -p $PKG2/install +cp $CWD/slack-desc.tetex-doc $PKG2/install/slack-desc + +# Strip everything: +find $PKG | xargs file | grep -e "executable" -e "shared object" | grep ELF \ + | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +# Gzip man pages: +gzip -9 $PKG1/usr/share/texmf/man/man?/*.? + +# Fix manpage symlinks: +( cd $PKG1/usr/share/texmf/man + for dir in man? ; do + ( cd $dir + for file in *.? ; do + if [ -L $file ]; then + LINK=$(readlink $file) + rm $file + ln -sf ${LINK}.gz ${file}.gz + fi + done + ) + done +) + +# Move some of the files into the docs package: +mkdir -p $PKG2/usr/share/texmf/doc +mv $PKG1/usr/share/texmf/doc/* $PKG2/usr/share/texmf/doc +mkdir -p $PKG2/usr/share/texinfo +mv /usr/share/texinfo/html $PKG2/usr/share/texinfo +mv $PKG1/usr/share/texmf/info $PKG2/usr +( cd $PKG1/usr/share/texmf ; ln -sf /usr/info . ) + +# Compress info pages and purge "dir" file from the package: +if [ -d $PKG2/usr/info ]; then + ( cd $PKG2/usr/info + rm -f dir + gzip -9 * + ) +fi + +# Make docs link in /usr/doc/: +mkdir -p $PKG2/usr/doc +( cd $PKG2/usr/doc ; rm -rf tetex-$VERSION ) +( cd $PKG2/usr/doc ; ln -sf /usr/share/texmf/doc tetex-$VERSION ) + +# Build the packages: +cd $PKG1 +/sbin/makepkg -l y -c n $TMP/tetex-$VERSION-$ARCH-$BUILD.txz +cd $PKG2 +/sbin/makepkg -l y -c n $TMP/tetex-doc-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/t/tetex/tetex.amstex.fmtutil.diff b/source/t/tetex/tetex.amstex.fmtutil.diff new file mode 100644 index 00000000..6ae5c1f9 --- /dev/null +++ b/source/t/tetex/tetex.amstex.fmtutil.diff @@ -0,0 +1,13 @@ +--- tetex-src-3.0/texk/web2c/fmtutil.in.fmtutil 2005-02-06 09:27:46.000000000 +0900 ++++ tetex-src-3.0/texk/web2c/fmtutil.in 2005-02-07 15:22:31.828492229 +0900 +@@ -55,7 +55,9 @@ + + # Change "amstex.ini -> bamstex.ini" and "- -> language.dat" + # if you want babel support in amstex: +-#! amstex pdfetex - -translate-file=cp227.tcx *amstex.ini ++amstex pdfetex - -translate-file=cp227.tcx *amstex.ini ++bplain pdfetex language.dat -translate-file=cp227.tcx bplain.ini ++bamstex pdfetex language.dat -translate-file=cp227.tcx bamstex.ini + + # Change "pdfamstex.ini -> pdfbamstex.ini" and "- -> language.dat" + # if you want babel support in pdfamstex: diff --git a/source/t/tetex/tetex.browsers.diff b/source/t/tetex/tetex.browsers.diff new file mode 100644 index 00000000..42052aa0 --- /dev/null +++ b/source/t/tetex/tetex.browsers.diff @@ -0,0 +1,39 @@ +--- ./texk/xdvik/gui/xm_prefsP.h.orig 2004-04-21 16:12:09.000000000 -0500 ++++ ./texk/xdvik/gui/xm_prefsP.h 2006-05-16 16:39:38.000000000 -0500 +@@ -96,8 +96,10 @@ + #define Xdvi_APPLY_STR "Apply" + + #define Xdvi_PREFS_BROWSER_DEFAULTS \ ++ "firefox -remote 'openURL(%s,new-window)'\n" \ ++ "seamonkey -remote 'openURL(%s,new-window)'\n" \ + "mozilla -remote 'openURL(%s,new-window)'\n" \ +- "netscape -raise -remote 'openURL(%s,new-window)'\n" \ ++ "xterm -e links %s\n" \ + "xterm -e lynx %s\n" \ + Xdvi_ADD_COMMAND_STR + #define Xdvi_PREFS_EDITOR_DEFAULTS \ +--- ./texk/xdvik/browser.c.orig 2004-11-11 19:25:26.000000000 -0600 ++++ ./texk/xdvik/browser.c 2006-05-16 16:39:52.000000000 -0500 +@@ -39,7 +39,10 @@ + #include "statusline.h" + + static const char *const default_browser_cmd = +- "netscape -raise -remote \"openURL(%s,new-window)\"" ++ ":firefox -remote \"openURL(%s,new-window)\"" ++ ":seamonkey -remote \"openURL(%s,new-window)\"" ++ ":mozilla -remote \"openURL(%s,new-window)\"" ++ ":xterm -e links %s" + ":xterm -e lynx %s" + ":xterm -e wget %s"; + +--- ./texk/xdvik/xdvi.1.in.orig 2005-01-20 10:51:45.000000000 -0600 ++++ ./texk/xdvik/xdvi.1.in 2006-05-16 16:40:25.000000000 -0500 +@@ -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 firefox -remote -remote "openURL(%s,new-window)":seamonkey -remote "openURL(%s,new-window)":mozilla -remote "openURL(%s,new-window)":xterm -e links %s:xterm -e lynx %s:xterm -e wget %s + .\""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" + .TP + .BI \-bw " width" diff --git a/source/t/tetex/tetex.dvipdfm.mkstemp.diff b/source/t/tetex/tetex.dvipdfm.mkstemp.diff new file mode 100644 index 00000000..5cae1bf2 --- /dev/null +++ b/source/t/tetex/tetex.dvipdfm.mkstemp.diff @@ -0,0 +1,20 @@ +--- tetex-src-2.0.2/texk/dvipdfm/psimage.c.dvipdfm-security 2001-06-28 20:55:26.000000000 +0100 ++++ tetex-src-2.0.2/texk/dvipdfm/psimage.c 2003-03-12 18:12:56.000000000 +0000 +@@ -113,10 +113,15 @@ + { + #ifdef HAVE_SYSTEM + pdf_obj *result = NULL; +- char *tmp, *cmd; ++ char tmp[] = "/tmp/dvipdfm.XXXXXX", *cmd; ++ int tfd; + FILE *pdf_file = NULL; + /* Get a full qualified tmp name */ +- tmp = tmpnam (NULL); ++ tfd = mkstemp (tmp); ++ if (tfd == -1) { ++ fprintf (stderr, "\nCouldn't create temporary file for output\n"); ++ return NULL; ++ } else close (tfd); + if ((cmd = build_command_line (file_name, tmp))) { + if (!system (cmd) && (pdf_file = MFOPEN (tmp, FOPEN_RBIN_MODE))) { + result = pdf_include_page (pdf_file, p, res_name); diff --git a/source/t/tetex/tetex.etex.diff b/source/t/tetex/tetex.etex.diff new file mode 100644 index 00000000..0f96a17a --- /dev/null +++ b/source/t/tetex/tetex.etex.diff @@ -0,0 +1,11 @@ +--- ./texk/web2c/fmtutil.cnf.orig 2005-07-17 17:09:33.000000000 -0700 ++++ ./texk/web2c/fmtutil.cnf 2005-07-17 17:11:20.000000000 -0700 +@@ -40,7 +40,7 @@ + # if you want babel support in tex: + tex tex - -translate-file=cp227.tcx tex.ini + latex pdfetex language.dat -translate-file=cp227.tcx *latex.ini +-etex pdfetex language.def -translate-file=cp227.tcx *etex.ini ++etex etex language.def -translate-file=cp227.tcx *etex.ini + pdftex pdfetex - -translate-file=cp227.tcx *pdftex.ini + pdflatex pdfetex language.dat -translate-file=cp227.tcx *pdflatex.ini + pdfetex pdfetex language.def -translate-file=cp227.tcx *pdfetex.ini diff --git a/source/t/tetex/tetex.fontcachedirinhome.diff b/source/t/tetex/tetex.fontcachedirinhome.diff new file mode 100644 index 00000000..11760a4c --- /dev/null +++ b/source/t/tetex/tetex.fontcachedirinhome.diff @@ -0,0 +1,11 @@ +--- ./texk/kpathsea/texmf.in-teTeX.orig 2005-02-05 18:04:35.000000000 -0600 ++++ ./texk/kpathsea/texmf.in-teTeX 2007-06-27 21:44:36.000000000 -0500 +@@ -119,7 +119,7 @@ + % Where generated fonts may be written. This tree is used when the sources + % were found in a system tree and either that tree wasn't writable, or the + % varfonts feature was enabled in MT_FEATURES in mktex.cnf. +-VARTEXFONTS = @vartexfonts@ ++VARTEXFONTS = $TEXMFVAR + + % Where to look for ls-R files. There need not be an ls-R in the + % directories in this path, but if there is one, Kpathsea will use it. diff --git a/source/t/tetex/tetex.scripts.mktemp.diff b/source/t/tetex/tetex.scripts.mktemp.diff new file mode 100644 index 00000000..7d38869c --- /dev/null +++ b/source/t/tetex/tetex.scripts.mktemp.diff @@ -0,0 +1,244 @@ +--- tetex-src-3.0/texk/tetex/allcm.badscript 2004-06-20 21:38:02.000000000 +0900 ++++ tetex-src-3.0/texk/tetex/allcm 2005-02-07 15:31:32.578141611 +0900 +@@ -14,7 +14,7 @@ + test -n "${ZSH_VERSION+set}" && alias -g '${1+"$@"}'='"$@"' + + progname=`basename $0` +-tmpdir=${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 +--- tetex-src-3.0/texk/tetex/fmtutil.badscript 2005-01-30 18:12:16.000000000 +0900 ++++ tetex-src-3.0/texk/tetex/fmtutil 2005-02-07 15:31:32.579141429 +0900 +@@ -105,8 +105,6 @@ + + trap 'cleanup' 1 2 3 7 13 15 + needsCleanup=true +- (umask 077; mkdir "$tmpdir") \ +- || abort "could not create directory \`$tmpdir'" + } + + ############################################################################### +@@ -357,7 +355,7 @@ + need_find_hyphenfile=false + cfgparam= + cfgmaint= +- tmpdir=${TMP-/tmp}/$progname.$$ ++ tmpdir=`mktemp -d ${TMP-/tmp}/$progname.XXXXXX` + verboseFlag=true + + # mktexfmtMode: if called as mktexfmt, set to true. Will echo the generated +--- tetex-src-3.0/texk/tetex/texconfig.badscript 2005-02-07 03:20:53.000000000 +0900 ++++ tetex-src-3.0/texk/tetex/texconfig 2005-02-07 15:31:32.581141065 +0900 +@@ -35,7 +35,7 @@ + TEXMFDBS TEXMFINI TEXMFSCRIPTS TEXPICTS TEXPKS TEXPOOL TEXPSHEADERS + TEXSOURCES TFMFONTS TRFONTS TTFONTS VFFONTS WEB2C WEBINPUTS + " +-tmpdir=${TMP-/tmp}/tctmp.$$ ++tmpdir=`mktemp -d "${TMP-/tmp}/$progname.XXXXXX"` || exit 1 + needsCleanup=false + lastUpdatedFile= + +@@ -214,8 +214,6 @@ + + trap 'cleanup' 1 2 3 7 13 15 + needsCleanup=true +- (umask 077; mkdir "$tmpdir") \ +- || abort "could not create directory \`$tmpdir'" + } + + ############################################################################### +--- tetex-src-3.0/texk/tetex/texlinks.badscript 2004-05-11 03:53:38.000000000 +0900 ++++ tetex-src-3.0/texk/tetex/texlinks 2005-02-07 15:31:32.583140701 +0900 +@@ -92,8 +92,6 @@ + + trap 'cleanup' 1 2 3 7 13 15 + needsCleanup=true +- (umask 077; mkdir "$tmpdir") \ +- || abort "could not create directory \`$tmpdir'" + } + + +@@ -209,7 +207,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 + } +@@ -253,7 +251,7 @@ + test -f "$cnf_file" || abort "config file \`$cnf' not found" + + +- tmpdir=${TMP-/tmp}/texlinks.$$ ++ tmpdir=`mktemp -d ${TMP-/tmp}/$progname.XXXXXX` || exit 1 + setupTmpDir + cd "$tmpdir" || { + false # some systems need this to set nonzero $? +@@ -261,7 +259,7 @@ + } + + 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 +@@ -279,8 +277,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 + +--- tetex-src-3.0/texk/tetex/updmap.badscript 2005-02-05 06:34:26.000000000 +0900 ++++ tetex-src-3.0/texk/tetex/updmap 2005-02-07 15:31:32.585140338 +0900 +@@ -761,7 +761,6 @@ + + trap 'cleanup' 1 2 3 7 13 15 + needsCleanup=true +- mkdir "$tmpdir" || abort "could not create directory \`$tmpdir'" + } + + ############################################################################### +@@ -1282,7 +1281,8 @@ + dvipsoutputdir=; pdftexoutputdir=; dvipdfmoutputdir= + : ${TEXMFMAIN=`kpsewhich -var-value=TEXMFMAIN`} + +- tmpdir=${TMP-/tmp}/$progname.$$ ++ tmpdir=`mktemp -d ${TMP-/tmp}/$progname.XXXXXX` || \ ++ abort "could not create directory" + tmp1=$tmpdir/a + tmp2=$tmpdir/b + tmp3=$tmpdir/c +--- tetex-src-3.0/texk/kpathsea/mktexlsr.badscript 2005-01-22 04:13:57.000000000 +0900 ++++ tetex-src-3.0/texk/kpathsea/mktexlsr 2005-02-07 15:31:32.586140156 +0900 +@@ -119,9 +119,8 @@ + # Skip if we cannot write the file: + kpseaccess -w "$db_file" || { echo "$progname: $db_file: no write permission. Skipping..." >&2; continue; } + +- db_dir_tmp="$db_dir/lsR$$.tmp" +- (umask 077 && mkdir "$db_dir_tmp" ) \ +- || { echo "$progname: could not create directory '$db_dir_tmp'. Skipping..." >&2; continue; } ++ db_dir_tmp=`mktemp -d "$db_dir/lsR.XXXXXX"` \ ++ || { echo "$progname: could not create secure temporary directory. Skipping..." >&2; continue; } + db_file_tmp="$db_dir_tmp/lsR$$.tmp" + rm -f "$db_file_tmp" + +--- tetex-src-3.0/texk/kpathsea/mktexmf.badscript 2005-01-26 02:39:21.000000000 +0900 ++++ tetex-src-3.0/texk/kpathsea/mktexmf 2005-02-07 15:31:32.587139974 +0900 +@@ -87,50 +87,52 @@ + exit 0 + fi + ++tmpfile=`mktemp mf.XXXXXX` ++ + case "$name" in + ec*|tc*) +- cat > "mf$$.tmp" <<END ++ cat > "$tmpfile" <<END + if unknown exbase: input exbase fi; + gensize:=$realsize; + generate $rootname; + END + ;; + dc*) +- cat > "mf$$.tmp" <<END ++ cat > "$tmpfile" <<END + if unknown dxbase: input dxbase fi; + gensize:=$realsize; + generate $rootname; + END + ;; + cs*|lcsss*|icscsc*|icstt*|ilcsss*) +- cat > "mf$$.tmp" <<END ++ cat > "$tmpfile" <<END + input cscode + use_driver; + END + ;; + wn[bcdfirstuv]*|rx[bcdfiorstuvx][bcfhilmostx]*|l[abcdhl][bcdfiorstuvx]*) +- cat > "mf$$.tmp" <<END ++ cat > "$tmpfile" <<END + input fikparm; + END + ;; + g[lmorst][ijmtwx][cilnoru]*) + # A small superset of the names of the cbgreek fonts. +- cat > "mf$$.tmp" <<END ++ cat > "$tmpfile" <<END + gensize:=$realsize; + input $rootname; + END + ;; + *) +- cat > "mf$$.tmp" <<END ++ cat > "$tmpfile" <<END + design_size := $realsize; + input $rootname; + END + ;; + esac + +-chmod `kpsestat -xst,go-w .` "mf$$.tmp" ++chmod `kpsestat -xst,go-w .` "$tmpfile" + rm -f "$mfname" +-mv "mf$$.tmp" "$mfname" ++mv "$tmpfile" "$mfname" + + echo "$destdir/$mfname" >$STDOUT + echo "$progname: $destdir/$mfname: successfully generated." >&2 +--- tetex-src-3.0/texk/dviljk/dvihp.badscript 2002-07-08 02:49:09.000000000 +0900 ++++ tetex-src-3.0/texk/dviljk/dvihp 2005-02-07 15:31:32.588139792 +0900 +@@ -7,9 +7,7 @@ + : ${SPOOL=lpr} # used to print an LJ file + : ${TMP=/tmp} # for the dvicopy output + +-TMPDIR="${TMP}"/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 "${TMP}" +--- tetex-src-3.0/texk/dvipdfm/dvipdft.badscript 2004-11-19 06:26:19.000000000 +0900 ++++ tetex-src-3.0/texk/dvipdfm/dvipdft 2005-02-07 15:31:32.589139610 +0900 +@@ -31,7 +31,7 @@ + $progname --help + $progname --version" + +-tmpdir=${TMP-/tmp}/$progname.$$ ++tmpdir=`mktemp -d ${TMP-/tmp}/$progname.XXXXXX` + + quoteit() + { +--- tetex-src-3.0/texk/xdvik/xdvizilla.badscript 2004-02-25 08:08:56.000000000 +0900 ++++ tetex-src-3.0/texk/xdvik/xdvizilla 2005-02-07 15:31:32.590139429 +0900 +@@ -61,7 +61,7 @@ + trap 'do_cleanup' 1 2 3 7 13 15 + + ### create a temporary directory only read/writable by user +-TMP_DIR=${TMP-/tmp}/$progname.$$ ++TMP_DIR=`mktmp -d ${TMP-/tmp}/$progname.XXXXXX` + (umask 077; mkdir "$TMP_DIR") || do_abort "Could not create directory \`$TMP_DIR'" + + if [ $# -gt 1 -a "x$1" = "x-no-rm" ]; then diff --git a/source/t/tetex/tetex.tmp.cleanup.diff b/source/t/tetex/tetex.tmp.cleanup.diff new file mode 100644 index 00000000..e2fb56ea --- /dev/null +++ b/source/t/tetex/tetex.tmp.cleanup.diff @@ -0,0 +1,51 @@ +--- tetex-src-3.0/texk/tetex/texconfig.tmpcleanup 2005-11-04 11:19:47.000000000 +0100 ++++ tetex-src-3.0/texk/tetex/texconfig 2005-11-04 14:22:18.000000000 +0100 +@@ -36,7 +36,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= + + ############################################################################### +--- tetex-src-3.0/texk/tetex/updmap.tmpcleanup 2005-11-04 11:19:47.000000000 +0100 ++++ tetex-src-3.0/texk/tetex/updmap 2005-11-04 14:22:18.000000000 +0100 +@@ -1274,7 +1274,7 @@ + texhashEnabled=true + mkmapEnabled=true + verbose=true +- needsCleanup=false ++ needsCleanup=true + + cnfFileShort=updmap.cfg + cnfFile= +@@ -1282,7 +1282,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 +--- tetex-src-3.0/texk/tetex/fmtutil.tmpcleanup 2005-11-04 11:19:47.000000000 +0100 ++++ tetex-src-3.0/texk/tetex/fmtutil 2005-11-04 14:22:18.000000000 +0100 +@@ -351,11 +351,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/source/t/tetex/tetex.var.fonts.diff b/source/t/tetex/tetex.var.fonts.diff new file mode 100644 index 00000000..9535ac6f --- /dev/null +++ b/source/t/tetex/tetex.var.fonts.diff @@ -0,0 +1,11 @@ +--- teTeX-1.0/texk/make/paths.mk.varconfig Sun Jan 10 16:42:53 1999 ++++ teTeX-1.0/texk/make/paths.mk Wed Aug 25 19:18:13 1999 +@@ -46,7 +46,7 @@ + texmf = @texmfmain@ + + # The directory used by varfonts. +-vartexfonts = /var/tmp/texfonts ++vartexfonts = /var/lib/texmf + + # Regular input files. + texinputdir = $(texmf)/tex |