[tex-live] Separating texmf trees. Problem with hard coded(?) path.

Gerben Wierda Sherlock at rna.nl
Mon Mar 3 16:59:24 CET 2003


I am using a very recent perforce source build.

There is some weird hard-coding problem in KPSE, it seems.

I have rearranged my texmf tree setup so that everything created by a  
make install of the programs is in a separate tree from the normal  
macros and stuff. My texmf.cnf now says:

> % Our directory setup as explained in  
> $SELFAUTOPARENT/share/README.gwtex
> % TEXMFMAIN contains the TEXMF tree installed by make install of the  
> programs
> TEXMFMAIN = $SELFAUTOPARENT/share/texmf.bin
> % TEXMFTE contains the main TEXMF tree from teTeX
> TEXMFTE = $SELFAUTOPARENT/share/texmf.tetex
> % TEXMFGW contains GW specific defaults and additions
> TEXMFGW = $SELFAUTOPARENT/share/texmf.gwtex
> % TEXMFLOCAL contains any local system TeXadmin overrides
> TEXMFLOCAL = $SELFAUTOPARENT/share/texmf.local
> % $VARTEXMF is where texconfig writes its local settings
> VARTEXMF = $TEXMFLOCAL
> % User texmf trees can be catered for like this...
> HOMETEXMF = $HOME/Library/texmf
>
> % Our complete search path, the last three are searched through
> % ls-R exclusively, which means that you have to run texhash
> % after you have added, moved or deleted files in the tree
> TEXMF={$HOMETEXMF,!!$TEXMFLOCAL,!!$TEXMFGW,!!$TEXMFTE,!!$TEXMFMAIN}
>
> % If you want to disable the HOME trees, use this:
> % TEXMF=!!{$TEXMFLOCAL,$TEXMFGW,$TEXMFTE,$TEXMFMAIN}
>
> % The system trees.  These are the trees that are shared by all the  
> users.
> SYSTEXMF = $TEXMFLOCAL;$TEXMFGW;$TEXMFTE;$TEXMFMAIN
>
> % 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 = /var/tmp/texfonts
>
> % 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.
> % This is default set to TEXMF+VARTEXFONTS but without HOMETEXMF
> TEXMFDBS = $TEXMFLOCAL;$TEXMFGW;$TEXMFTE;$TEXMFMAIN;$VARTEXFONTS

I am now experiencing weird behaviour from kpsewhich. If I want to  
locate fmtutil.cnf, I type:

	kpsewhich --format='web2c files' fmtutil.cnf

But nothing is found (it *is* available in texmf.bin/web2c and it is  
mentioned in texmf.bin/ls-R. It is also available in texmf.local/web2c)

When I move (TEXMFMAIN) share/texmf.bin to share/texmf, adapt the  
settings above for TEXMFMAIN to reflect that (so that fmtutil.cnf is  
found in share/texmf) and run texhash, it works, I get the one in  
texmf.local.

Another strange thing is that I cannot find the value of the WEB2C  
variable with kpsewhich when I use texmf.bin instead of texmf

> [dumbledore:/usr/local/teTeX] root# kpsewhich --expand-var '$TEXMF'
> {/Network/Users/gerben/Library/texmf,!!/usr/local/teTeX/share/ 
> texmf.local,!!/usr/local/teTeX/share/texmf.gwtex,!!/usr/local/teTeX/ 
> share/texmf.tetex,!!/usr/local/teTeX/share/texmf.bin}
> [dumbledore:/usr/local/teTeX] root# kpsewhich --expand-var '$WEB2C'

The last comes up empty (which is probably the cause of the problem I  
am experiencing).

Now, suppose I do *not* edit /usr/local/teTeX/texmf.cnf and change  
texmf.bin in texmf there but I *do* move texmf.bin to texmf. Then  
suddenly I can expand WEB2C:

> [dumbledore:/usr/local/teTeX] root# kpsewhich --expand-var '$WEB2C'
> {/Network/Users/gerben/Library/texmf,!!/usr/local/teTeX/share/ 
> texmf.local,!!/usr/local/teTeX/share/texmf.gwtex,!!/usr/local/teTeX/ 
> share/texmf.tetex,!!/usr/local/teTeX/share/texmf.bin}/web2c

It looks like the name texmf is hard-coded somewhere in kpse. This  
seems to be the case, because when I move texmf.bin to texmf,  
texmf/web2c/texmf.cnf is read and variables are expanded, while with  
texmf.bin they are not (see below fo rkpsewhich --debug 2 output).

(Note: my make install *does* install web2c stuff in share/texmf.bin,  
not that it should matter)

Thanks,

G

I'll include the output of a kpsewhich --debug 2 run for finding  
fmtutil.cnf:

> kdebug:hash_lookup(TEXMFDBS.kpsewhich) => (nil)
> kdebug:hash_lookup(TEXMFDBS) =>  
> $TEXMFLOCAL:$TEXMFGW:$TEXMFTE:$TEXMFMAIN:$VARTEXFONTS
> kdebug:hash_lookup(TEXMFLOCAL.kpsewhich) => (nil)
> kdebug:hash_lookup(TEXMFLOCAL) => $SELFAUTOPARENT/share/texmf.local
> kdebug:hash_lookup(TEXMFGW.kpsewhich) => (nil)
> kdebug:hash_lookup(TEXMFGW) => $SELFAUTOPARENT/share/texmf.gwtex
> kdebug:hash_lookup(TEXMFTE.kpsewhich) => (nil)
> kdebug:hash_lookup(TEXMFTE) => $SELFAUTOPARENT/share/texmf.tetex
> kdebug:hash_lookup(TEXMFMAIN.kpsewhich) => (nil)
> kdebug:hash_lookup(TEXMFMAIN) => $SELFAUTOPARENT/share/texmf.bin
> kdebug:hash_lookup(VARTEXFONTS.kpsewhich) => (nil)
> kdebug:hash_lookup(VARTEXFONTS) => /var/tmp/texfonts
> kdebug:hash_lookup(TEXMFLOG.kpsewhich) => (nil)
> kdebug:hash_lookup(TEXMFLOG) => (nil)
> kdebug:/usr/local/teTeX/share/texmf.local/ls-R: 563 entries in 26  
> directories (0 hidden).
> kdebug:ls-R hash table:15991 buckets, 404 nonempty (2%); 563 entries,  
> average chain 1.4.
> kdebug:/usr/local/teTeX/share/texmf.gwtex/ls-R: 543 entries in 62  
> directories (0 hidden).
> kdebug:ls-R hash table:15991 buckets, 877 nonempty (5%); 1106 entries,  
> average chain 1.3.
> kdebug:/usr/local/teTeX/share/texmf.tetex/ls-R: 12051 entries in 730  
> directories (0 hidden).
> kdebug:ls-R hash table:15991 buckets, 7929 nonempty (49%); 13157  
> entries, average chain 1.7.
> kdebug:/usr/local/teTeX/share/texmf.bin/ls-R: 69 entries in 20  
> directories (0 hidden).
> kdebug:ls-R hash table:15991 buckets, 7954 nonempty (49%); 13226  
> entries, average chain 1.7.
> kdebug:/var/tmp/texfonts/ls-R: 19 entries in 20 directories (0 hidden).
> kdebug:ls-R hash table:15991 buckets, 7954 nonempty (49%); 13245  
> entries, average chain 1.7.
> kdebug:/usr/local/teTeX/share/texmf.tetex/aliases: 92 aliases.
> kdebug:alias hash table:1009 buckets, 86 nonempty (8%); 92 entries,  
> average chain 1.1.
> kdebug:hash_lookup(GFFONTS.kpsewhich) => (nil)
> kdebug:hash_lookup(GFFONTS) => (nil)
> kdebug:hash_lookup(GLYPHFONTS.kpsewhich) => (nil)
> kdebug:hash_lookup(GLYPHFONTS) => (nil)
> kdebug:hash_lookup(TEXFONTS.kpsewhich) => (nil)
> kdebug:hash_lookup(TEXFONTS) => (nil)
> kdebug:hash_lookup(MKTEXPK.kpsewhich) => (nil)
> kdebug:hash_lookup(MKTEXPK) => (nil)
> kdebug:hash_lookup(PKFONTS.kpsewhich) => (nil)
> kdebug:hash_lookup(PKFONTS) => (nil)
> kdebug:hash_lookup(TEXPKS.kpsewhich) => (nil)
> kdebug:hash_lookup(TEXPKS) => (nil)
> kdebug:hash_lookup(GLYPHFONTS.kpsewhich) => (nil)
> kdebug:hash_lookup(GLYPHFONTS) => (nil)
> kdebug:hash_lookup(TEXFONTS.kpsewhich) => (nil)
> kdebug:hash_lookup(TEXFONTS) => (nil)
> kdebug:hash_lookup(MKTEXPK.kpsewhich) => (nil)
> kdebug:hash_lookup(MKTEXPK) => (nil)
> kdebug:hash_lookup(GLYPHFONTS.kpsewhich) => (nil)
> kdebug:hash_lookup(GLYPHFONTS) => (nil)
> kdebug:hash_lookup(TEXFONTS.kpsewhich) => (nil)
> kdebug:hash_lookup(TEXFONTS) => (nil)
> kdebug:hash_lookup(MKTEXTFM.kpsewhich) => (nil)
> kdebug:hash_lookup(MKTEXTFM) => 1
> kdebug:hash_lookup(TFMFONTS.kpsewhich) => (nil)
> kdebug:hash_lookup(TFMFONTS) => (nil)
> kdebug:hash_lookup(TEXFONTS.kpsewhich) => (nil)
> kdebug:hash_lookup(TEXFONTS) => (nil)
> kdebug:hash_lookup(AFMFONTS.kpsewhich) => (nil)
> kdebug:hash_lookup(AFMFONTS) => (nil)
> kdebug:hash_lookup(MKTEXFMT.kpsewhich) => (nil)
> kdebug:hash_lookup(MKTEXFMT) => (nil)
> kdebug:hash_lookup(MFBASES.kpsewhich) => (nil)
> kdebug:hash_lookup(MFBASES) => (nil)
> kdebug:hash_lookup(TEXMFINI.kpsewhich) => (nil)
> kdebug:hash_lookup(TEXMFINI) => (nil)
> kdebug:hash_lookup(BIBINPUTS.kpsewhich) => (nil)
> kdebug:hash_lookup(BIBINPUTS) => (nil)
> kdebug:hash_lookup(TEXBIB.kpsewhich) => (nil)
> kdebug:hash_lookup(TEXBIB) => (nil)
> kdebug:hash_lookup(BSTINPUTS.kpsewhich) => (nil)
> kdebug:hash_lookup(BSTINPUTS) => (nil)
> kdebug:hash_lookup(MKTEXFMT.kpsewhich) => (nil)
> kdebug:hash_lookup(MKTEXFMT) => (nil)
> kdebug:hash_lookup(TEXFORMATS.kpsewhich) => (nil)
> kdebug:hash_lookup(TEXFORMATS) => (nil)
> kdebug:hash_lookup(TEXMFINI.kpsewhich) => (nil)
> kdebug:hash_lookup(TEXMFINI) => (nil)
> kdebug:hash_lookup(TEXFONTMAPS.kpsewhich) => (nil)
> kdebug:hash_lookup(TEXFONTMAPS) => (nil)
> kdebug:hash_lookup(MKTEXFMT.kpsewhich) => (nil)
> kdebug:hash_lookup(MKTEXFMT) => (nil)
> kdebug:hash_lookup(MPMEMS.kpsewhich) => (nil)
> kdebug:hash_lookup(MPMEMS) => (nil)
> kdebug:hash_lookup(TEXMFINI.kpsewhich) => (nil)
> kdebug:hash_lookup(TEXMFINI) => (nil)
> kdebug:hash_lookup(MKTEXMF.kpsewhich) => (nil)
> kdebug:hash_lookup(MKTEXMF) => (nil)
> kdebug:hash_lookup(MFINPUTS.kpsewhich) => (nil)
> kdebug:hash_lookup(MFINPUTS) => (nil)
> kdebug:hash_lookup(MFPOOL.kpsewhich) => (nil)
> kdebug:hash_lookup(MFPOOL) => (nil)
> kdebug:hash_lookup(TEXMFINI.kpsewhich) => (nil)
> kdebug:hash_lookup(TEXMFINI) => (nil)
> kdebug:hash_lookup(MFTINPUTS.kpsewhich) => (nil)
> kdebug:hash_lookup(MFTINPUTS) => (nil)
> kdebug:hash_lookup(MPINPUTS.kpsewhich) => (nil)
> kdebug:hash_lookup(MPINPUTS) => (nil)
> kdebug:hash_lookup(MPPOOL.kpsewhich) => (nil)
> kdebug:hash_lookup(MPPOOL) => (nil)
> kdebug:hash_lookup(TEXMFINI.kpsewhich) => (nil)
> kdebug:hash_lookup(TEXMFINI) => (nil)
> kdebug:hash_lookup(MPSUPPORT.kpsewhich) => (nil)
> kdebug:hash_lookup(MPSUPPORT) => (nil)
> kdebug:hash_lookup(MKOCP.kpsewhich) => (nil)
> kdebug:hash_lookup(MKOCP) => (nil)
> kdebug:hash_lookup(OCPINPUTS.kpsewhich) => (nil)
> kdebug:hash_lookup(OCPINPUTS) => (nil)
> kdebug:hash_lookup(MKOFM.kpsewhich) => (nil)
> kdebug:hash_lookup(MKOFM) => (nil)
> kdebug:hash_lookup(OFMFONTS.kpsewhich) => (nil)
> kdebug:hash_lookup(OFMFONTS) => (nil)
> kdebug:hash_lookup(TEXFONTS.kpsewhich) => (nil)
> kdebug:hash_lookup(TEXFONTS) => (nil)
> kdebug:hash_lookup(TFMFONTS.kpsewhich) => (nil)
> kdebug:hash_lookup(TFMFONTS) => (nil)
> kdebug:hash_lookup(OPLFONTS.kpsewhich) => (nil)
> kdebug:hash_lookup(OPLFONTS) => (nil)
> kdebug:hash_lookup(TEXFONTS.kpsewhich) => (nil)
> kdebug:hash_lookup(TEXFONTS) => (nil)
> kdebug:hash_lookup(OTPINPUTS.kpsewhich) => (nil)
> kdebug:hash_lookup(OTPINPUTS) => (nil)
> kdebug:hash_lookup(OVFFONTS.kpsewhich) => (nil)
> kdebug:hash_lookup(OVFFONTS) => (nil)
> kdebug:hash_lookup(TEXFONTS.kpsewhich) => (nil)
> kdebug:hash_lookup(TEXFONTS) => (nil)
> kdebug:hash_lookup(OVPFONTS.kpsewhich) => (nil)
> kdebug:hash_lookup(OVPFONTS) => (nil)
> kdebug:hash_lookup(TEXFONTS.kpsewhich) => (nil)
> kdebug:hash_lookup(TEXFONTS) => (nil)
> kdebug:hash_lookup(TEXPICTS.kpsewhich) => (nil)
> kdebug:hash_lookup(TEXPICTS) => (nil)
> kdebug:hash_lookup(TEXINPUTS.kpsewhich) => (nil)
> kdebug:hash_lookup(TEXINPUTS) => (nil)
> kdebug:hash_lookup(MKTEXTEX.kpsewhich) => (nil)
> kdebug:hash_lookup(MKTEXTEX) => (nil)
> kdebug:hash_lookup(TEXINPUTS.kpsewhich) => (nil)
> kdebug:hash_lookup(TEXINPUTS) => (nil)
> kdebug:hash_lookup(TEXDOCS.kpsewhich) => (nil)
> kdebug:hash_lookup(TEXDOCS) => (nil)
> kdebug:hash_lookup(TEXPOOL.kpsewhich) => (nil)
> kdebug:hash_lookup(TEXPOOL) => (nil)
> kdebug:hash_lookup(TEXMFINI.kpsewhich) => (nil)
> kdebug:hash_lookup(TEXMFINI) => (nil)
> kdebug:hash_lookup(TEXSOURCES.kpsewhich) => (nil)
> kdebug:hash_lookup(TEXSOURCES) => (nil)
> kdebug:hash_lookup(TEXPSHEADERS.kpsewhich) => (nil)
> kdebug:hash_lookup(TEXPSHEADERS) => (nil)
> kdebug:hash_lookup(PSHEADERS.kpsewhich) => (nil)
> kdebug:hash_lookup(PSHEADERS) => (nil)
> kdebug:hash_lookup(TRFONTS.kpsewhich) => (nil)
> kdebug:hash_lookup(TRFONTS) => (nil)
> kdebug:hash_lookup(T1FONTS.kpsewhich) => (nil)
> kdebug:hash_lookup(T1FONTS) => (nil)
> kdebug:hash_lookup(T1INPUTS.kpsewhich) => (nil)
> kdebug:hash_lookup(T1INPUTS) => (nil)
> kdebug:hash_lookup(TEXPSHEADERS.kpsewhich) => (nil)
> kdebug:hash_lookup(TEXPSHEADERS) => (nil)
> kdebug:hash_lookup(PSHEADERS.kpsewhich) => (nil)
> kdebug:hash_lookup(PSHEADERS) => (nil)
> kdebug:hash_lookup(VFFONTS.kpsewhich) => (nil)
> kdebug:hash_lookup(VFFONTS) => (nil)
> kdebug:hash_lookup(TEXFONTS.kpsewhich) => (nil)
> kdebug:hash_lookup(TEXFONTS) => (nil)
> kdebug:hash_lookup(TEXCONFIG.kpsewhich) => (nil)
> kdebug:hash_lookup(TEXCONFIG) => (nil)
> kdebug:hash_lookup(TEXINDEXSTYLE.kpsewhich) => (nil)
> kdebug:hash_lookup(TEXINDEXSTYLE) => (nil)
> kdebug:hash_lookup(INDEXSTYLE.kpsewhich) => (nil)
> kdebug:hash_lookup(INDEXSTYLE) => (nil)
> kdebug:hash_lookup(TTFONTS.kpsewhich) => (nil)
> kdebug:hash_lookup(TTFONTS) => (nil)
> kdebug:hash_lookup(T42FONTS.kpsewhich) => (nil)
> kdebug:hash_lookup(T42FONTS) => (nil)
> kdebug:hash_lookup(WEB2C.kpsewhich) => (nil)
> kdebug:hash_lookup(WEB2C) => (nil)

Contrast this to when texmf.bin is renamed to texmf (and  
/usr/local/teTeX/texmf.cnf is changed or not)

> kdebug:hash_lookup(WEB2C.kpsewhich) => (nil)
> kdebug:hash_lookup(WEB2C) => $TEXMF/web2c



More information about the tex-live mailing list