--- texmf-dist/web2c/fmtutil.cnf | 8 +- texmf-dist/web2c/mktex.opt | 39 +++++++++-- texmf-dist/web2c/texmf.cnf | 141 +++++++++++++++++++++++++++---------------- 3 files changed, 123 insertions(+), 65 deletions(-) --- texmf-dist/web2c/fmtutil.cnf +++ texmf-dist/web2c/fmtutil.cnf 2020-04-20 16:19:39.729909034 +0000 @@ -66,8 +66,8 @@ hilatex hitex language.dat -etex -ltx hi hitex hitex language.def -etex -ltx hitex.ini # # from jadetex: -jadetex pdftex language.dat *jadetex.ini -pdfjadetex pdftex language.dat *pdfjadetex.ini +jadetex pdftex language.dat -translate-file=cp227.tcx *jadetex.ini +pdfjadetex pdftex language.dat -translate-file=cp227.tcx *pdfjadetex.ini # # from latex-bin: dvilualatex luatex language.dat,language.dat.lua dvilualatex.ini @@ -151,5 +151,5 @@ xelatex xetex language.dat -etex xelatex xetex xetex language.def -etex xetex.ini # # from xmltex: -pdfxmltex pdftex language.dat *pdfxmltex.ini -xmltex pdftex language.dat *xmltex.ini +pdfxmltex pdftex language.dat -translate-file=cp227.tcx *pdfxmltex.ini +xmltex pdftex language.dat -translate-file=cp227.tcx *xmltex.ini --- texmf-dist/web2c/mktex.opt +++ texmf-dist/web2c/mktex.opt 2012-05-14 11:26:00.034911495 +0000 @@ -38,10 +38,11 @@ if test "$DOSISH" = "no"; then SEP=':'; # TEMPDIR needs to be unique to each process because of the possibility of two # people running dvips (or whatever) simultaneously. if test -n "$TMPDIR"; then - TEMPDIR="${TMPDIR}/mt$$.tmp" + TEMPDIR="${TMPDIR}/.mtXXXXXXXXXX" else - TEMPDIR="/tmp/mt$$.tmp" + TEMPDIR="/tmp/.mtXXXXXXXXXX" fi +TEMPDIR=$(mktemp -d "$TEMPDIR") || exit 1 # We want to output only filenames to standard output, but it's too # error-prone to write the scripts that way, so we direct stdout here. @@ -49,17 +50,23 @@ STDOUT="$TEMPDIR/mt$$.out" # We will change search paths to include $KPSE_DOT. This is necessary # since we cd to $TEMPDIR. -: ${KPSE_DOT=`pwd`}; export KPSE_DOT +: ${KPSE_DOT=${PWD}}; export KPSE_DOT # Clean up on normal or abnormal exit. # The "cd /" is for MS-DOS and MS-Windows, where there is a separate # current directory on each drive, and therefore "cd $KPSE_DOT" might # still leave $TMPDIR current directory on its drive, in which case it # cannot be removed. -trap 'rc=$?; cd /; cd "$KPSE_DOT"; test -f "$STDOUT" && cat "$STDOUT"; rm -rf "$TEMPDIR"; exit $rc' \ - 0 1 2 3 7 13 15 +atexit () +{ + local rc=$? + cd "$KPSE_DOT" + test -n "$STDOUT" -a -f "$STDOUT" && cat "$STDOUT" + test -n "$TEMPDIR" -a -d "$TEMPDIR" && rm -rf "$TEMPDIR" + exit $rc +} +trap 'atexit' EXIT SIGHUP SIGINT SIGQUIT SIGBUS SIGPIPE SIGTERM -(umask 077 && mkdir "$TEMPDIR") || exit 1 cd "$TEMPDIR" || exit 1 # The alternative location for fonts. The directory need not exist, @@ -69,6 +76,11 @@ if test -z "$MT_VARTEXFONTS"; then echo "$0: VARTEXFONTS is not defined. Defaulting to \`$KPSE_DOT'." >&2 MT_VARTEXFONTS='$KPSE_DOT' fi +: ${MT_TEXMFVAR=`kpsewhich --expand-var='$TEXMFVAR' | sed 's%^!!%%'`} +if test -z "$MT_TEXMFVAR"; then + echo "$0: TEXMFVAR is not defined. Defaulting to \`$KPSE_DOT'." >&2 + MT_TEXMFVAR='$KPSE_DOT' +fi # The supporting scripts: : ${MT_MKTEXNAM=`kpsewhich --format='web2c files' mktexnam`} @@ -109,9 +121,18 @@ fi : ${MAG=1.0} : ${ps_to_pk=gsftopk} # some prefer ps2pk -# Allow fonts to be read and written (especially in case we make -# directories) by everyone. -umask 0 +case ":${MT_FEATURES}:" in +*:varfonts:*) + if test -w "$MT_VARTEXFONTS" ; then + # Allow fonts to be read and written (especially in case we make + # directories) by everyone. + umask 0 + else + umask 022 + MT_VARTEXFONTS=$HOME/.cache/texmf/fonts + test -d $MT_VARTEXFONTS || mkdir -p $MT_VARTEXFONTS + fi +esac # Cache values that may be useful for recursive calls. export MT_MKTEX_OPT MT_MKTEX_CNF --- texmf-dist/web2c/texmf.cnf +++ texmf-dist/web2c/texmf.cnf 2023-03-23 08:35:53.138983942 +0000 @@ -62,20 +62,20 @@ TEXMFROOT = $SELFAUTOPARENT % The main tree of distributed packages and programs: -TEXMFDIST = $TEXMFROOT/texmf-dist +TEXMFDIST = /usr/share/texmf % We used to have a separate /texmf tree with some core programs and files. % Keep the variable name. TEXMFMAIN = $TEXMFDIST % Local additions to the distribution trees. -TEXMFLOCAL = $SELFAUTOGRANDPARENT/texmf-local +TEXMFLOCAL = /usr/local/share/texmf % TEXMFSYSVAR, where *-sys store cached runtime data. -TEXMFSYSVAR = $TEXMFROOT/texmf-var +TEXMFSYSVAR = /var/lib/texmf % TEXMFSYSCONFIG, where *-sys store configuration data. -TEXMFSYSCONFIG = $TEXMFROOT/texmf-config +TEXMFSYSCONFIG = /etc/texmf % Per-user texmf tree(s) -- organized per the TDS, as usual. To define % more than one per-user tree, set this to a list of directories in @@ -84,10 +84,10 @@ TEXMFSYSCONFIG = $TEXMFROOT/texmf-config TEXMFHOME = ~/texmf % TEXMFVAR, where texconfig/updmap/fmtutil store cached runtime data. -TEXMFVAR = ~/.texlive2023/texmf-var +TEXMFVAR = ${TEXMFSYSVAR} % TEXMFCONFIG, where texconfig/updmap/fmtutil store configuration data. -TEXMFCONFIG = ~/.texlive2023/texmf-config +TEXMFCONFIG = ${TEXMFSYSCONFIG} % This is the value manipulated by tlmgr's auxtrees subcommand in the % root texmf.cnf. Kpathsea warns about a literally empty string for a @@ -108,7 +108,7 @@ TEXMFAUXTREES = {} % The odd-looking $TEXMFAUXTREES$TEXMF... construct is so that if no auxtree is % ever defined (the 99% common case), no extra elements will be added to % the search paths. tlmgr takes care to end any value with a trailing comma. -TEXMF = {$TEXMFAUXTREES$TEXMFCONFIG,$TEXMFVAR,$TEXMFHOME,!!$TEXMFLOCAL,!!$TEXMFSYSCONFIG,!!$TEXMFSYSVAR,!!$TEXMFDIST} +TEXMF = {$TEXMFHOME,!!$TEXMFSYSCONFIG,!!$TEXMFSYSVAR,!!$TEXMFLOCAL,!!$TEXMFDIST} % Where to look for, and where mktexlsr creates, ls-R files. By default, % this is all and only the !! elements of TEXMF, so that mktexlsr does not @@ -116,24 +116,23 @@ TEXMF = {$TEXMFAUXTREES$TEXMFCONFIG,$TEX % present, it will be used, and the disk will not (usually) be searched, % regardless of !!. Although in principle a directory listed here need % not contain an ls-R file, in practice they all should. -TEXMFDBS = {!!$TEXMFLOCAL,!!$TEXMFSYSCONFIG,!!$TEXMFSYSVAR,!!$TEXMFDIST} +TEXMFDBS = $TEXMF;$VARTEXFONTS;$HOMECACHE % The system trees. These are the trees that are shared by all users. % If a tree appears in this list, the mktex* scripts will use % VARTEXFONTS for generated files, if the original tree isn't writable; % otherwise the current working directory is used. -SYSTEXMF = $TEXMFSYSVAR;$TEXMFLOCAL;$TEXMFDIST +SYSTEXMF = $TEXMFSYSCONFIG;$TEXMFSYSVAR;$TEXMFLOCAL;$TEXMFDIST % First writable tree here is used by Lua(La)TeX for the font cache. % LuaLaTeX uses the value here, while ConTeXt uses the same variable but % from texmfcnf.lua; therefore the two values should be kept in sync. % (As should everything else in texmf.cnf <-> texmfcnf.lua.) -TEXMFCACHE = $TEXMFSYSVAR;$TEXMFVAR +TEXMFCACHE = $TEXMFSYSVAR;$TEXMFVAR;$HOMECACHE % 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 = $TEXMFVAR/fonts % On some systems, there will be a system tree which contains all the font % files that may be created as well as the formats. For example @@ -144,7 +143,8 @@ VARTEXFONTS = $TEXMFVAR/fonts % % Remove $VARTEXFONTS from TEXMFDBS if the VARTEXFONTS directory is below % one of the TEXMF directories (avoids overlapping ls-R files). - +VARTEXFONTS = /var/cache/texmf/fonts +HOMECACHE = ${HOME}/.cache/texmf/fonts %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Usually you will not need to edit any of the following variables. @@ -152,7 +152,7 @@ VARTEXFONTS = $TEXMFVAR/fonts % WEB2C is for Web2C specific files. The current directory may not be % a good place to look for them. -WEB2C = $TEXMF/web2c +WEB2C = ${TEXMFHOME}/web2c;${TEXMFSYSCONFIG}/web2c;${TEXMFSYSVAR}/web2c;$TEXMF/web2c % This variable exists only to be redefined; it is used in nearly all % search paths. If a document has source files not only in the current @@ -304,7 +304,7 @@ TEXINPUTS.frpdftex = $TEXMFDOTDIR;$ TEXINPUTS = $TEXMFDOTDIR;$TEXMF/tex/{$progname,generic,latex,}// % Metafont, MetaPost inputs. -MFINPUTS = $TEXMFDOTDIR;$TEXMF/metafont//;{$TEXMF/fonts,$VARTEXFONTS}/source// +MFINPUTS = $TEXMFDOTDIR;$TEXMF/metafont//;{$TEXMF/fonts,$HOMECACHE,$VARTEXFONTS}/source// MPINPUTS = $TEXMFDOTDIR;$TEXMF/metapost// % Dump files (fmt/base/mem) for vir{tex,mf,mp} to read. @@ -314,31 +314,31 @@ MPINPUTS = $TEXMFDOTDIR;$TEXMF/metapost/ % We repeat the same definition three times because of the way fmtutil % is implemented; if we use ${TEXFORMATS}, the mpost/mf/etc. formats % will not be found. -TEXFORMATS = $TEXMFDOTDIR;$TEXMF/web2c{/$engine,} -MFBASES = $TEXMFDOTDIR;$TEXMF/web2c{/$engine,} -MPMEMS = $TEXMFDOTDIR;$TEXMF/web2c{/$engine,} +TEXFORMATS = $TEXMFDOTDIR;$TEXMF/web2c{/$engine,}// +MFBASES = $TEXMFDOTDIR;$TEXMF/web2c{/$engine,}// +MPMEMS = $TEXMFDOTDIR;$TEXMF/web2c{/$engine,}// % % As of 2008, pool files don't exist any more (the strings are compiled % into the binaries), but just in case something expects to find these: -TEXPOOL = $TEXMFDOTDIR;$TEXMF/web2c +TEXPOOL = $TEXMFDOTDIR;$WEB2C MFPOOL = ${TEXPOOL} MPPOOL = ${TEXPOOL} % support the original xdvi. Must come before the generic settings. -PKFONTS.XDvi = $TEXMFDOTDIR;$TEXMF/%s;$VARTEXFONTS/pk/{%m,modeless}// +PKFONTS.XDvi = $TEXMFDOTDIR;$TEXMF/%s;{$HOMECACHE,$VARTEXFONTS}/pk/{%m,modeless}// VFFONTS.XDvi = $TEXMFDOTDIR;$TEXMF/%s PSHEADERS.XDvi = $TEXMFDOTDIR;$TEXMF/%q{dvips,fonts/type1}// TEXPICTS.XDvi = $TEXMFDOTDIR;$TEXMF/%q{dvips,tex}// % Device-independent font metric files. VFFONTS = $TEXMFDOTDIR;$TEXMF/fonts/vf// -TFMFONTS = $TEXMFDOTDIR;{$TEXMF/fonts,$VARTEXFONTS}/tfm// +TFMFONTS = $TEXMFDOTDIR;{$TEXMF/fonts,$HOMECACHE,$VARTEXFONTS}/tfm// % The $MAKETEX_MODE below means the drivers will not use a cx font when % the mode is ricoh. If no mode is explicitly specified, kpse_prog_init % sets MAKETEX_MODE to /, so all subdirectories are searched. See the manual. % The modeless part guarantees that bitmaps for PostScript fonts are found. -PKFONTS = $TEXMFDOTDIR;{$TEXMF/fonts,$VARTEXFONTS}/pk/{$MAKETEX_MODE,modeless}// +PKFONTS = $TEXMFDOTDIR;{$TEXMF/fonts,$HOMECACHE,$VARTEXFONTS}/pk/{$MAKETEX_MODE,modeless}// % Similarly for the GF format, which only remains in existence because % Metafont outputs it (and MF isn't going to change). @@ -446,8 +446,8 @@ MPSUPPORT = $TEXMFDOTDIR;$TEXMF/metapost % For xdvi to find mime.types and .mailcap, if they do not exist in % ~. These are single directories, not paths. % (But the default mime.types, at least, may well suffice.) -MIMELIBDIR = $TEXMFROOT/etc -MAILCAPLIBDIR = $TEXMFROOT/etc +MIMELIBDIR = /etc +MAILCAPLIBDIR = /etc % Default settings for the fontconfig library as used by the Windows % versions of xetex/xdvipdfmx. Not used by xetex on Unixish systems. @@ -471,10 +471,10 @@ WEBINPUTS = $TEXMFDOTDIR;$TEXMF/web// CWEBINPUTS = $TEXMFDOTDIR;$TEXMF/cweb// % Omega-related fonts and other files. -OFMFONTS = $TEXMFDOTDIR;{$TEXMF/fonts,$VARTEXFONTS}/{ofm,tfm}// -OPLFONTS = $TEXMFDOTDIR;{$TEXMF/fonts,$VARTEXFONTS}/opl// -OVFFONTS = $TEXMFDOTDIR;{$TEXMF/fonts,$VARTEXFONTS}/{ovf,vf}// -OVPFONTS = $TEXMFDOTDIR;{$TEXMF/fonts,$VARTEXFONTS}/ovp// +OFMFONTS = $TEXMFDOTDIR;{$TEXMF/fonts,$HOMECACHE,$VARTEXFONTS}/{ofm,tfm}// +OPLFONTS = $TEXMFDOTDIR;{$TEXMF/fonts,$HOMECACHE,$VARTEXFONTS}/opl// +OVFFONTS = $TEXMFDOTDIR;{$TEXMF/fonts,$HOMECACHE,$VARTEXFONTS}/{ovf,vf}// +OVPFONTS = $TEXMFDOTDIR;{$TEXMF/fonts,$HOMECACHE,$VARTEXFONTS}/ovp// OTPINPUTS = $TEXMFDOTDIR;$TEXMF/omega/otp// OCPINPUTS = $TEXMFDOTDIR;$TEXMF/omega/ocp// @@ -570,32 +570,38 @@ RUBYINPUTS = $TEXMFDOTDIR;$TEXMF/scrip % explicitly list every directory. Arguably more understandable anyway. % TEXMFCNF = {\ -$SELFAUTOLOC,\ -$SELFAUTOLOC/share/texmf-local/web2c,\ -$SELFAUTOLOC/share/texmf-dist/web2c,\ -$SELFAUTOLOC/share/texmf/web2c,\ -$SELFAUTOLOC/texmf-local/web2c,\ -$SELFAUTOLOC/texmf-dist/web2c,\ -$SELFAUTOLOC/texmf/web2c,\ -\ -$SELFAUTODIR,\ -$SELFAUTODIR/share/texmf-local/web2c,\ -$SELFAUTODIR/share/texmf-dist/web2c,\ -$SELFAUTODIR/share/texmf/web2c,\ -$SELFAUTODIR/texmf-local/web2c,\ -$SELFAUTODIR/texmf-dist/web2c,\ -$SELFAUTODIR/texmf/web2c,\ -\ -$SELFAUTOGRANDPARENT/texmf-local/web2c,\ -$SELFAUTOPARENT,\ -\ -$SELFAUTOPARENT/share/texmf-local/web2c,\ -$SELFAUTOPARENT/share/texmf-dist/web2c,\ -$SELFAUTOPARENT/share/texmf/web2c,\ -$SELFAUTOPARENT/texmf-local/web2c,\ -$SELFAUTOPARENT/texmf-dist/web2c,\ -$SELFAUTOPARENT/texmf/web2c\ +/etc/texmf,\ +/etc/texmf/web2c,\ +/var/lib/texmf/web2c,\ +/usr/share/texmf/web2c\ } +%TEXMFCNF = {\ +%$SELFAUTOLOC,\ +%$SELFAUTOLOC/share/texmf-local/web2c,\ +%$SELFAUTOLOC/share/texmf-dist/web2c,\ +%$SELFAUTOLOC/share/texmf/web2c,\ +%$SELFAUTOLOC/texmf-local/web2c,\ +%$SELFAUTOLOC/texmf-dist/web2c,\ +%$SELFAUTOLOC/texmf/web2c,\ +%\ +%$SELFAUTODIR,\ +%$SELFAUTODIR/share/texmf-local/web2c,\ +%$SELFAUTODIR/share/texmf-dist/web2c,\ +%$SELFAUTODIR/share/texmf/web2c,\ +%$SELFAUTODIR/texmf-local/web2c,\ +%$SELFAUTODIR/texmf-dist/web2c,\ +%$SELFAUTODIR/texmf/web2c,\ +%\ +%$SELFAUTOGRANDPARENT/texmf-local/web2c,\ +%$SELFAUTOPARENT,\ +%\ +%$SELFAUTOPARENT/share/texmf-local/web2c,\ +%$SELFAUTOPARENT/share/texmf-dist/web2c,\ +%$SELFAUTOPARENT/share/texmf/web2c,\ +%$SELFAUTOPARENT/texmf-local/web2c,\ +%$SELFAUTOPARENT/texmf-dist/web2c,\ +%$SELFAUTOPARENT/texmf/web2c\ +%} % % For reference, here is the old brace-using definition: %TEXMFCNF = {$SELFAUTOLOC,$SELFAUTODIR,$SELFAUTOPARENT}{,{/share,}/texmf{-local,}/web2c} @@ -921,3 +927,34 @@ guess_input_kanji_encoding.mendex = 1 % command_line_encoding = none % in a texmf.cnf prefered, for example $TEXMFLOCAL/web2c/texmf.cnf. command_line_encoding = utf-8 + +% These are xmltex specific +main_memory.xmltex = 2500000 +param_size.xmltex = 1500 +stack_size.xmltex = 1500 +hash_extra.xmltex = 50000 +string_vacancies.xmltex = 45000 +pool_free.xmltex = 47500 +nest_size.xmltex = 500 +save_size.xmltex = 10000 +pool_size.xmltex = 500000 +max_strings.xmltex = 55000 + +% These are pdfxmltex specific +main_memory.pdfxmltex = 2500000 +param_size.pdfxmltex = 1500 +stack_size.pdfxmltex = 1500 +hash_extra.pdfxmltex = 50000 +string_vacancies.pdfxmltex = 45000 +pool_free.pdfxmltex = 47500 +nest_size.pdfxmltex = 500 +save_size.pdfxmltex = 10000 +pool_size.pdfxmltex = 500000 +max_strings.pdfxmltex = 55000 + +% These are jadetex specific +main_memory.jadetex = 499999 +hash_extra.jadetex = 25000 +pool_size.jadetex = 500000 +save_size.jadetex = 15000 +