diff options
author | Nicolas Goaziou <mail@nicolasgoaziou.fr> | 2024-05-27 10:47:28 +0200 |
---|---|---|
committer | Ludovic Courtès <ludo@gnu.org> | 2024-08-31 10:45:20 +0200 |
commit | 228ae96b0560b2d76d4449d5060ce3e028c7a1da (patch) | |
tree | 98c03ced023e10d6b4ce30a2cec4c5b8669cc0e4 | |
parent | c2030c19072f02c6e44c22b923c0366b6f2028e2 (diff) | |
download | guix-228ae96b0560b2d76d4449d5060ce3e028c7a1da.tar.gz |
gnu: texlive-libkpathsea: Better default values in "texmf.cnf".
* gnu/packages/tex.scm (texlive-libkpathsea)[arguments]<#:phases>: Use better default values in "texmf.cnf". This fixes slowness in ".tex" documents compilation, left-over "{/" directories in compilation directory, and helps LuaTeX finding system fonts. Change-Id: I3a914507e9bf1e5cbff16d7d37924eadf1316d89
-rw-r--r-- | gnu/packages/tex.scm | 38 |
1 files changed, 24 insertions, 14 deletions
diff --git a/gnu/packages/tex.scm b/gnu/packages/tex.scm index b5f0cc65b8..94d040e2af 100644 --- a/gnu/packages/tex.scm +++ b/gnu/packages/tex.scm @@ -215,21 +215,31 @@ ;; environment variable defined via a search path below. ;; ;; This phase must happen before the `configure' phase, because - ;; the value of the TEXMFCNF variable (modified along with the - ;; SELFAUTOLOC reference below) is used at compile time to + ;; the value of the TEXMFCNF variable is used at compile time to ;; generate "paths.h" file. (lambda _ (substitute* "texk/kpathsea/texmf.cnf" - (("^TEXMFROOT = .*") - "TEXMFROOT = {$GUIX_TEXMF}/..\n") + (("^TEXMFROOT = .*") "TEXMFROOT = {$GUIX_TEXMF}/..\n") + (("^TEXMFDIST = .*") "TEXMFDIST = {$GUIX_TEXMF}\n") + ;; "ls-R" files are to be expected only in the TEXMFDIST + ;; directories. However, those are not always present, e.g., + ;; when building a package with `texlive-build-system' or when + ;; generating a profile. Since both situations need to be + ;; handled, drop the "!!" prefixes. (("^TEXMF = .*") - "TEXMF = {$GUIX_TEXMF}\n") - (("\\$SELFAUTOLOC(/share/texmf-dist/web2c)" _ suffix) - (string-append #$output suffix)) - ;; Ignore system-wide cache. Use local one, by default - ;; "$HOME/.texliveYYYY/texmf-var/". - (("^TEXMFCACHE = .*") - "TEXMFCACHE = $TEXMFVAR\n") + "TEXMF = {$TEXMFCONFIG,$TEXMFVAR,$TEXMFHOME,$TEXMFSYSCONFIG,$TEXMFSYSVAR,$TEXMFDIST}\n") + (("^TEXMFDBS = .*") "TEXMFDBS = {$TEXMFDIST}\n") + ;; Ignore system-wide cache, which is not writable. Use local + ;; one instead, i.e. "$HOME/.texliveYYYY/texmf-var/". + (("^TEXMFCACHE = .*") "TEXMFCACHE = $TEXMFVAR\n") + ;; Set TEXMFCNF. Since earlier values of variables have + ;; precedence over later ones, insert the desired value first. + (("^TEXMFCNF =") + (string-append + "TEXMFCNF = " #$output "/share/texmf-dist/web2c\n" + "TEXMFCNF =")) + ;; Help TeX finding fonts installed on the system. + (("^OSFONTDIR = .*") "OSFONTDIR = {$XDG_DATA_DIRS}\n") ;; Don't truncate lines. (("^error_line = .*$") "error_line = 254\n") (("^half_error_line = .*$") "half_error_line = 238\n") @@ -237,9 +247,9 @@ (add-after 'unpack 'patch-directory-traversal ;; When ST_NLINK_TRICK is set, kpathsea attempts to avoid work ;; when searching files by assuming that a directory with exactly - ;; two links has no subdirectories. This assumption does not hold - ;; in our case, so some directories with symlinked sub-directories - ;; would not be traversed. + ;; two links has no sub-directories. This assumption does not + ;; hold in our case, so some directories with symlinked + ;; sub-directories would not be traversed. (lambda _ (substitute* "texk/kpathsea/config.h" (("#define ST_NLINK_TRICK") "")))) |