Hi Karl, hi all, we got the following bug report with patch and detail analysis of mktexpk failing under some circumstances.
Any comment? On Di, 08 Jul 2008, Jan Hudec wrote: > The mktexpk script fails if it tries to build a .pk in a directory with space > (tested), tab or some backslash-character combinations (obvious from the > code). > > I traced the space problem down to a single cd with unquoted argument. > However I also noticed use of echo+sed dirname replacement (with comment > "can't rely on dirname" -- basename was relied on on the next line though), > which would have problems with spaces at the end (backquote expansion eats > them) and backslashes in some shells (the rules for backslash processing in > echo differ from shell to shell). So my patch additionally includes > a replacement of those two statements with ${var##pattern} and ${var%pattern} > expansions. These expansions are POSIX and should thus be reasonably > portable. > > ################################## > patch (standard patch -p1 unified diff) > > --- old/build/source/texk/kpathsea/mktexpk 2006-01-17 22:41:51.000000000 > +0100 > +++ new/build/source/texk/kpathsea/mktexpk 2008-07-08 21:49:14.000000000 > +0200 > @@ -199,8 +199,8 @@ > IFS=$OIFS > > PKDEST="$1" > -PKDESTDIR=`echo "$PKDEST" | sed 's%/[^/][^/]*$%%'` # can't rely on dirname > -PKNAME=`basename "$PKDEST"` > +PKDESTDIR=${PKDEST%/*} > +PKNAME=${PKDEST##*/} > GFNAME=$NAME.${DPI}gf > > if test -r "$PKDESTDIR/$PKNAME"; then > @@ -250,7 +250,7 @@ > # Use cp when mv fails, since DOS will fail mv for deeply-nested directories. > mv $PKNAME "$PKDESTDIR/pk$$.tmp" 2>/dev/null \ > || cp $PKNAME "$PKDESTDIR/pk$$.tmp" || exit 1 > -cd $PKDESTDIR || exit 1 > +cd "$PKDESTDIR" || exit 1 > chmod `kpsestat -xst,go-w .` pk$$.tmp > test -r $PKNAME || mv pk$$.tmp $PKNAME || exit 1 Best wishes Norbert ------------------------------------------------------------------------------- Dr. Norbert Preining <[EMAIL PROTECTED]> Vienna University of Technology Debian Developer <[EMAIL PROTECTED]> Debian TeX Group gpg DSA: 0x09C5B094 fp: 14DF 2E6C 0307 BE6D AD76 A9C0 D2BF 4AA3 09C5 B094 ------------------------------------------------------------------------------- CROMARTY (n.) The brittle sludge which clings to the top of ketchup bottles and plastic tomatoes in nasty cafes. --- Douglas Adams, The Meaning of Liff -- To UNSUBSCRIBE, email to [EMAIL PROTECTED] with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]