[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Difficulties with texmfvar feature



Hi,

on the Debian TeX list we have considered using the 'texmfvar' feature
instead of the 'varfonts' feature for the mktex* scripts. We have
encountered a problem with mktexnam, though. Specifically, mktexnam uses

     ${MT_TEXMFVAR=`kpsewhich --expand-path='$TEXMFVAR'`}

when the texmfvar feature is used. Unfortunately, this returns nothing,
if directory specified in TEXMFVAR does not exist yet. IMO it would be
better to use  

     ${MT_TEXMFVAR=`kpsewhich --var-value=TEXMFVAR`}

which returns the value that has been defined in texm.cnf (or in the
environment). In addition, IMO mktexnam should try to create TEXMFVAR if
it does not exist yet, similar to updmap's behaviour. I am attaching a
patch against 

     mktexnam $Id: mktexnam,v 1.30 2004/12/28 20:55:56 olaf Exp $
     kpathsea version 3.5.4

as distributed with teTeX 3.0. Comments?

cheerio
ralf




*** tetex-bin/texk/kpathsea/mktexnam	2005-10-06 17:26:12.000000000 +0200
--- mktexnam	2006-05-25 12:23:17.000000000 +0200
***************
*** 145,151 ****
        # Some additional uglyness handles the case where $TEXMFVAR exists
        # but $TEXMFVAR/fonts doesn't (yet).
        if test "x$USE_TEXMFVAR" = x1; then
!         : ${MT_TEXMFVAR=`kpsewhich --expand-path='$TEXMFVAR'`}
          MT_DESTROOT=$MT_TEXMFVAR/fonts
          if test -z "$MT_TEXMFVAR"; then
            # Path expansion of $TEXMFVAR was empty.
--- 145,151 ----
        # Some additional uglyness handles the case where $TEXMFVAR exists
        # but $TEXMFVAR/fonts doesn't (yet).
        if test "x$USE_TEXMFVAR" = x1; then
!         : ${MT_TEXMFVAR=`kpsewhich --var-value=TEXMFVAR`}
          MT_DESTROOT=$MT_TEXMFVAR/fonts
          if test -z "$MT_TEXMFVAR"; then
            # Path expansion of $TEXMFVAR was empty.
***************
*** 158,166 ****
            # De we have write access and permission?
            kpseaccess -w "$MT_TEXMFVAR" || FALLBACK=1
            test -w "$MT_TEXMFVAR" || FALLBACK=1
!         else
            # TEXMFVAR defined and exists, but it is not a directory?
            FALLBACK=1
          fi
        else
          # Do we have write access and permission?
--- 158,169 ----
            # De we have write access and permission?
            kpseaccess -w "$MT_TEXMFVAR" || FALLBACK=1
            test -w "$MT_TEXMFVAR" || FALLBACK=1
!         elif test -e "$MT_TEXMFVAR"; then
            # TEXMFVAR defined and exists, but it is not a directory?
            FALLBACK=1
+         else
+           # TEXMFVAR defined but does not exist, try to create it
+           MT_FEATURES=none "$MT_TEXMFMAIN/web2c/mktexdir" "$MT_TEXMFVAR" || FALLBACK=1
          fi
        else
          # Do we have write access and permission?

Reply to: