andreas pushed a commit to branch tex-team in repository guix. commit 8028fa0612d8a83efc12222f2e0c6679d44ae4b2 Author: Nicolas Goaziou <m...@nicolasgoaziou.fr> AuthorDate: Sat Mar 29 14:59:25 2025 +0100
gnu: texlive-libkpathsea: Tweak "texmf.cnf" variables. * gnu/packages/tex.scm (texlive-libkpathsea): Use XDG variables instead of HOME for cache and user configuration. Re-instate TEXMFLOCAL, which may be necessary for external TeX installations. (texlive-luatex): Re-instate TEXFLOCAL. * gnu/packages/algebra.scm (gap): * gnu/packages/assembly.scm (asl): (yaehmop): * gnu/packages/bioinformatics.scm (discrover): * gnu/packages/chez.scm (chez-scheme-for-racket): * gnu/packages/engineering.scm (fastcap): * gnu/packages/fsf.scm (book-faif): * gnu/packages/maths.scm (hypre): (stex-boostrap): (suitesparse-amd): (suitesparse-camd): (suitesparse-cholmod): (suitesparse-klu): (suitesparse-ldl): (suitesparse-mongoose): (suitesparse-spex): (suitesparse-spqr): (suitesparse-umfpack): * gnu/packages/ocaml.scm (ocaml-bibtex2html): (unison): * gnu/packages/python-xyz.scm (python-nbconvert): * gnu/packages/statistics.scm (r-with-tests)[arguments]: Set TEXMFVAR to a writable location. Change-Id: I3d2d069cf41a92214d9d6fb7f4d54fc81fe6db7a --- gnu/packages/algebra.scm | 1 + gnu/packages/assembly.scm | 2 ++ gnu/packages/bioinformatics.scm | 4 ++++ gnu/packages/chemistry.scm | 1 + gnu/packages/chez.scm | 5 ++++- gnu/packages/engineering.scm | 2 +- gnu/packages/fsf.scm | 3 +++ gnu/packages/maths.scm | 14 +++++++++++++- gnu/packages/ocaml.scm | 7 +++++-- gnu/packages/python-xyz.scm | 5 +++-- gnu/packages/statistics.scm | 3 +++ gnu/packages/tex.scm | 18 +++++++++++------- 12 files changed, 51 insertions(+), 14 deletions(-) diff --git a/gnu/packages/algebra.scm b/gnu/packages/algebra.scm index ec78ab3018..f928e7943c 100644 --- a/gnu/packages/algebra.scm +++ b/gnu/packages/algebra.scm @@ -1417,6 +1417,7 @@ xtensor provides: ;; removed packages. It needs to be done after 'build since ;; it requires the gap binary. (lambda _ + (setenv "TEXMFVAR" "/tmp") ;required to generate fonts (with-directory-excursion "doc" (invoke "./make_doc")))) (add-after 'install 'install-packages diff --git a/gnu/packages/assembly.scm b/gnu/packages/assembly.scm index 97cd59c854..0c6d6d668b 100644 --- a/gnu/packages/assembly.scm +++ b/gnu/packages/assembly.scm @@ -103,6 +103,8 @@ #$output)))) (add-after 'check 'build-doc (lambda* (#:key parallel-build? #:allow-other-keys) + ;; Generating font shapes require a writable TEXMFVAR. + (setenv "TEXMFVAR" "/tmp") (invoke "make" "-j" (if parallel-build? (number->string (parallel-job-count)) diff --git a/gnu/packages/bioinformatics.scm b/gnu/packages/bioinformatics.scm index 7fa1043e2b..2c62dcd60b 100644 --- a/gnu/packages/bioinformatics.scm +++ b/gnu/packages/bioinformatics.scm @@ -7473,6 +7473,10 @@ data and settings.") ;; SOURCE_DATE_EPOCH (lambda _ (setenv "FORCE_SOURCE_DATE" "1"))) + (add-before 'build 'use-writable-texmfvar + ;; Use writable TEXMFVAR to generate fonts. + (lambda _ + (setenv "TEXMFVAR" "/tmp"))) (add-after 'unpack 'fix-latex-errors (lambda _ (with-fluids ((%default-port-encoding #f)) diff --git a/gnu/packages/chemistry.scm b/gnu/packages/chemistry.scm index 65e39b73fb..841849d942 100644 --- a/gnu/packages/chemistry.scm +++ b/gnu/packages/chemistry.scm @@ -886,6 +886,7 @@ emphasis on quality rather than speed.") (("file=dihedral\\.eps") "file=figs/dihedral.eps")) (setenv "FORCE_SOURCE_DATE" "1") + (setenv "TEXMFVAR" "/tmp") (invoke "latexmk" "-pdf" "bind_manual.tex")))) (add-after 'install 'install-eht-parms (lambda _ diff --git a/gnu/packages/chez.scm b/gnu/packages/chez.scm index e6aee9dde5..68cf421da8 100644 --- a/gnu/packages/chez.scm +++ b/gnu/packages/chez.scm @@ -402,7 +402,9 @@ will name the threaded machine type unless THREADS? is provided as #f." (add-after 'configure 'configure-environment-variables (lambda args ;; mats/6.ms needs HOME to be set: - (setenv "HOME" "/tmp"))) + (setenv "HOME" "/tmp") + ;; Writable TEXMFVAR is required to generate font shapes. + (setenv "TEXMFVAR" "/tmp"))) (replace 'build ;; need to override target for cross-compilation ;; https://racket.discourse.group/t/950/19 @@ -805,6 +807,7 @@ package @code{cs-bootstrap} to bootstrap its initial version of Chez Scheme.") ;; the Makefile is referenced in the documentation (copy-recursively "doc" doc-dir) (install-file "ReadMe" doc-dir) + (setenv "TEXMFVAR" "/tmp") ;for generating font shapes (with-directory-excursion "doc" (invoke "make") (install-file "stex.html" doc-dir) diff --git a/gnu/packages/engineering.scm b/gnu/packages/engineering.scm index f799782802..a90347749c 100644 --- a/gnu/packages/engineering.scm +++ b/gnu/packages/engineering.scm @@ -747,7 +747,7 @@ featuring various improvements and bug fixes."))) #t)) (add-before 'install 'make-pdf (lambda _ - (setenv "HOME" "/tmp") ; FIXME: for texlive font cache + (setenv "TEXMFVAR" "/tmp") ;For texlive font cache (with-directory-excursion "doc" (and (for-each (lambda (file) diff --git a/gnu/packages/fsf.scm b/gnu/packages/fsf.scm index b8817d363e..33181e5927 100644 --- a/gnu/packages/fsf.scm +++ b/gnu/packages/fsf.scm @@ -50,6 +50,9 @@ #:install-plan #~'(("faif-2.0.pdf" "share/doc/faif/")) #:phases #~(modify-phases %standard-phases + (add-after 'unpack 'writable-texmfvar + ;; Generating font shapes require a writable TEXMFVAR directory. + (lambda _ (setenv "TEXMFVAR" "/tmp"))) (add-before 'install 'build (lambda _ (invoke "pdflatex" "faif-2.0.tex")))))) diff --git a/gnu/packages/maths.scm b/gnu/packages/maths.scm index eb43944cb2..f0beb5d33d 100644 --- a/gnu/packages/maths.scm +++ b/gnu/packages/maths.scm @@ -6283,6 +6283,8 @@ package contains a library with common configuration options.") "set(DUMMY\n"))))) (add-after 'build 'build-doc (lambda _ + ;; Generating font shapes require a writable TEXMFVAR directory. + (setenv "TEXMFVAR" "/tmp") (with-directory-excursion "../AMD/Doc" (invoke "make")))) ;; Required for suitesparse-umfpack @@ -6364,6 +6366,8 @@ matrix into block upper triangular form.") "set(DUMMY\n"))))) (add-after 'build 'build-doc (lambda _ + ;; Generating font shapes require a writable TEXMFVAR directory. + (setenv "TEXMFVAR" "/tmp") (with-directory-excursion "../CAMD/Doc" (invoke "make")))) (add-after 'install 'install-doc @@ -6555,6 +6559,7 @@ target_link_libraries(CHOLMOD_static PRIVATE ${METIS_LIBRARY} ${GKLIB_LIBRARY})" (("SuiteSparse_metis_METIS") "METIS")))) (add-after 'build 'build-doc (lambda _ + (setenv "TEXMFVAR" "/tmp") ;for font shapes generation (with-directory-excursion "../CHOLMOD/Doc" (invoke "make")))) (add-after 'install 'install-doc @@ -6657,6 +6662,7 @@ direct methods on both real and complex matrices.") (substitute* "../KLU/Doc/Makefile" (("\\.\\./\\.\\./BTF/Include/btf.h") (string-append #$suitesparse-btf "/include/btf.h"))) + (setenv "TEXMFVAR" "/tmp") ;for generating font shapes (with-directory-excursion "../KLU/Doc" (invoke "make")))) (add-after 'install 'install-doc @@ -6716,6 +6722,7 @@ for real and complex matrices.") (substitute* "../LDL/Doc/Makefile" (("\\.\\./\\.\\./BTF/Include/btf.h") (string-append #$suitesparse-btf "/include/btf.h"))) + (setenv "TEXMFVAR" "/tmp") ;for font shape generation (with-directory-excursion "../LDL/Doc" (invoke "make")))) (add-after 'install 'install-doc @@ -6799,6 +6806,8 @@ for reading and writing sparse matrices in the Rutherford/Boeing format.") "set(DUMMY\n"))))) (add-after 'build 'build-doc (lambda _ + ;; A writable TEXMFVAR is required for building font shapes. + (setenv "TEXMFVAR" "/tmp") ;; XeLaTeX fails with .eps graphics (with-directory-excursion "../Mongoose/Doc" (for-each @@ -6880,6 +6889,7 @@ edge cuts using a coarsening and refinement framework.") ")\nset(DUMMY\n"))))) (add-after 'build 'build-doc (lambda _ + (setenv "TEXMFVAR" "/tmp") ;for font shapes generation (with-directory-excursion "../SPEX/Doc" (invoke "make")))) (add-after 'install 'install-doc @@ -6949,6 +6959,7 @@ LU factorization for solving unsymmetric sparse linear systems.") ")\nset(DUMMY\n"))))) (add-after 'build 'build-doc (lambda _ + (setenv "TEXMFVAR" "/tmp") ;for generating font shapes (with-directory-excursion "../SPQR/Doc" (invoke "make")))) (add-after 'install 'install-doc @@ -7010,6 +7021,7 @@ matrices.") ")\nset(DUMMY\n"))))) (add-after 'build 'build-doc (lambda _ + (setenv "TEXMFVAR" "/tmp") ;for generating font shapes (with-directory-excursion "../UMFPACK/Doc" (invoke "make")))) (add-after 'install 'install-doc @@ -7801,7 +7813,7 @@ set.") configure-flags))))))) (add-after 'build 'build-docs (lambda _ - (setenv "HOME" (getcwd)) + (setenv "TEXMFVAR" "/tmp") (invoke "make" "-C" "docs"))) (replace 'check (lambda* (#:key tests? #:allow-other-keys) diff --git a/gnu/packages/ocaml.scm b/gnu/packages/ocaml.scm index 5e4c08667a..01aef23b2a 100644 --- a/gnu/packages/ocaml.scm +++ b/gnu/packages/ocaml.scm @@ -1457,6 +1457,9 @@ software engineering.") (arguments `(#:phases (modify-phases %standard-phases + (add-before 'build 'writable-texmfvar + ;; Generating font shapes requires a writable TEXMFVAR. + (lambda _ (setenv "TEXMFVAR" "/tmp"))) (add-after 'install 'install-doc (lambda* (#:key outputs #:allow-other-keys) (let ((doc (string-append (assoc-ref outputs "out") @@ -9459,8 +9462,8 @@ SHA384, SHA512, Blake2b, Blake2s and RIPEMD160.") (add-after 'unpack 'patch-/bin/sh (lambda _ (substitute* "configure" (("/bin/sh") (which "bash"))) - ;; mktexfmt needs writable home directory. - (setenv "HOME" (getcwd))))))) + ;; mktexfmt needs writable TEXMFVAR directory. + (setenv "TEXMFVAR" "/tmp")))))) (native-inputs (list (texlive-local-tree (list texlive-infwarerr diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm index 3f303f2e43..32a01d70a2 100644 --- a/gnu/packages/python-xyz.scm +++ b/gnu/packages/python-xyz.scm @@ -19341,8 +19341,9 @@ time.") (getenv "JUPYTER_PATH"))) ;; jupyter-core demands this (setenv "JUPYTER_PLATFORM_DIRS" "1") - ;; Tests need a writable HOME. - (setenv "HOME" "/tmp")))))) + ;; Tests need writable HOME and TEXMFVAR. + (setenv "HOME" "/tmp") + (setenv "TEXMFVAR" "/tmp")))))) (inputs (list inkscape/pinned pandoc)) (native-inputs diff --git a/gnu/packages/statistics.scm b/gnu/packages/statistics.scm index 3f6e6aacff..493bec1e6c 100644 --- a/gnu/packages/statistics.scm +++ b/gnu/packages/statistics.scm @@ -374,6 +374,9 @@ as.POSIXct(if (\"\" != Sys.getenv(\"SOURCE_DATE_EPOCH\")) {\ (add-before 'check 'set-home ;; Some tests require that HOME be set. (lambda _ (setenv "HOME" "/tmp"))) + (add-before 'build 'use-writable-texmfvar + ;; Use writable TEXMFVAR to generate fonts. + (lambda _ (setenv "TEXMFVAR" "/tmp"))) (add-after 'build 'make-info (lambda _ (invoke "make" "info"))) (add-after 'build 'install-info diff --git a/gnu/packages/tex.scm b/gnu/packages/tex.scm index 08c8b125be..9f20945925 100644 --- a/gnu/packages/tex.scm +++ b/gnu/packages/tex.scm @@ -340,14 +340,18 @@ should not be installed in a profile.") (substitute* "texk/kpathsea/texmf.cnf" (("^TEXMFROOT = .*") "TEXMFROOT = {$GUIX_TEXMF}/..\n") (("^TEXMFDIST = .*") "TEXMFDIST = {$GUIX_TEXMF}\n") + ;; Use XDG recommendations for local variables. Also ignore + ;; system-wide cache, which is not writable; use local one + ;; instead, i.e., "$XDG_CACHE_HOME/.texliveYYYY/texmf-var/". + (("^TEXMFVAR = ~/") "TEXMFVAR = $XDG_CACHE_HOME/") + (("^TEXMFCONFIG = ~/") "TEXMFCONFIG = $XDG_CONFIG_HOME/") + (("^TEXMFCACHE = .*") "TEXMFCACHE = $TEXMFVAR\n") ;; "ls-R" files are to be expected only in the TEXMFDIST - ;; directories. + ;; directories. TEXMFLOCAL is not necessary for Guix, but + ;; could be required anyway by external TeX installations. (("^TEXMF = .*") - "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") + "TEXMF = {$TEXMFCONFIG,$TEXMFVAR,$TEXMFHOME,!!TEXMFLOCAL,TEXMFSYSVAR,TEXMFSYSCONFIG,!!$TEXMFDIST}\n") + (("^TEXMFDBS = .*") "TEXMFDBS = {!!$TEXMFLOCAL,!!$TEXMFDIST}\n") ;; Set TEXMFCNF. Since earlier values of variables have ;; precedence over later ones, insert the desired value first. (("^TEXMFCNF =") @@ -65882,7 +65886,7 @@ iterate, apply, etc., to the table.") (("TEXMFSYSCONFIG *=.*") "TEXMFSYSCONFIG = \"$TEXMFDIST/../texmf-config\",\n") (("TEXMF *=.*") - "TEXMF = \"{$TEXMFCONFIG,$TEXMFVAR,$TEXMFHOME,$TEXMFSYSCONFIG,$TEXMFSYSVAR,$TEXMFDIST}\",\n"))))))) + "TEXMF = \"{$TEXMFCONFIG,$TEXMFVAR,$TEXMFHOME,$TEXMFLOCAL,$TEXMFSYSCONFIG,$TEXMFSYSVAR,$TEXMFDIST}\",\n"))))))) (native-inputs (list (if (target-64bit?) libfaketime datefudge) texlive-kpathsea))