[tex-live] share sub-directory

Patrice Dumas pertusus at free.fr
Mon Mar 3 00:41:09 CET 2008


On Sun, Mar 02, 2008 at 05:14:16PM -0600, Karl Berry wrote:
> Hi Peter,
> 
> The texmf.cnf that is generated by a build of the sources is not used
> anywhere in TeX Live itself.  (That is the one you are talking about, I
> take it.)  

It may be used in post build calls of fmtutils and the like.

> It is generated by rules in kpathsea/Makefile.in, which
> basically substitute most of Make's directory-related variables.  It is
> nothing terribly complex.

Understanding the relationship (or lack of relationship) between the 
texmf.cnf in Build and the texlive texmf texm.cnf is not trivial.
And in the Build texmf.cnf, it may be quite complex to get it to do 
what you want, for example if you want to follow the linux File
Hierarchy Standard (at least in texlive 2007). I attach a patch that
sets more paths that you could apply to help packagers (though these
are not used), and also the patch we use in fedora to get the texmf.cnf 
we want. As you may see this is not a trivial change...

--
Pat
-------------- next part --------------
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.
 
-------------- next part --------------
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 at -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 at -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 at -local
 %   TEXMFSYSVAR = $TEXMFMAIN
 % For using a separate tree:
 %   TEXMFSYSVAR = @texmf at -var
-TEXMFSYSVAR = @texmf at -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 at -var
 %   TEXMFSYSCONFIG = $TEXMFMAIN
 % For using a separate tree:
 %   TEXMFSYSCONFIG = @texmf at -config
-TEXMFSYSCONFIG = @texmf at -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;/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


More information about the tex-live mailing list