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
This commit is contained in:
Nicolas Goaziou 2025-03-29 14:59:25 +01:00 committed by Andreas Enge
parent b1ef3bce13
commit 1a8b36329f
No known key found for this signature in database
GPG key ID: F7D5C9BF765C61E3
12 changed files with 52 additions and 15 deletions

View file

@ -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

View file

@ -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))

View file

@ -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))

View file

@ -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 _

View file

@ -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)

View file

@ -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)

View file

@ -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"))))))

View file

@ -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)

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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")
;; "ls-R" files are to be expected only in the TEXMFDIST
;; directories.
(("^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/".
;; 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. TEXMFLOCAL is not necessary for Guix, but
;; could be required anyway by external TeX installations.
(("^TEXMF = .*")
"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))