ngz pushed a commit to branch tex-team
in repository guix.
commit cff664f610eea4d3fa114de832826d75b756d19b
Author: Nicolas Goaziou <[email protected]>
AuthorDate: Mon Feb 10 10:43:57 2025 +0100
gnu: texlive-libkpathsea: Enforce ls-R usage by default.
Fixes: https://issues.guix.gnu.org/75893
* gnu/packages/tex.scm (texlive-libkpathsea): Set TEXMF so that ls-R
database
is mandatory and must contain the file looked after in the TeX Live tree.
* guix/build/texlive-build-system.scm (configure-texmf): Relax requirements
for "ls-R" database. Renamed from `set-texmfvar'.
(%standard-phases): Apply phase renaming.
Change-Id: I0296f8335f4eb6359bae5e133a1544058389cdcc
---
gnu/packages/tex.scm | 7 ++-----
guix/build/texlive-build-system.scm | 19 ++++++++++++-------
2 files changed, 14 insertions(+), 12 deletions(-)
diff --git a/gnu/packages/tex.scm b/gnu/packages/tex.scm
index a856f63b38..7055e4bea4 100644
--- a/gnu/packages/tex.scm
+++ b/gnu/packages/tex.scm
@@ -326,12 +326,9 @@ should not be installed in a profile.")
(("^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.
+ ;; directories.
(("^TEXMF = .*")
- "TEXMF =
{$TEXMFCONFIG,$TEXMFVAR,$TEXMFHOME,$TEXMFSYSCONFIG,$TEXMFSYSVAR,$TEXMFDIST}\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/".
diff --git a/guix/build/texlive-build-system.scm
b/guix/build/texlive-build-system.scm
index 25b64991f7..90936c178d 100644
--- a/guix/build/texlive-build-system.scm
+++ b/guix/build/texlive-build-system.scm
@@ -2,7 +2,7 @@
;;; Copyright © 2017 Ricardo Wurmus <[email protected]>
;;; Copyright © 2021 Maxim Cournoyer <[email protected]>
;;; Copyright © 2021 Thiago Jung Bauermann <[email protected]>
-;;; Copyright © 2023, 2024 Nicolas Goaziou <[email protected]>
+;;; Copyright © 2023-2025 Nicolas Goaziou <[email protected]>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -91,11 +91,16 @@ runfile to replace. If a file has no matching runfile, it
is ignored."
((command-regexp _ command)
(which command))))))
-(define* (set-texmfvar #:rest _)
- "Set TEXMFVAR to a writable location."
- ;; Default value is relative to $HOME, which is not set during build. This
- ;; location is used for generating font metrics or building documentation.
- (setenv "TEXMFVAR" (string-append (getcwd) "/texmf-var")))
+(define* (configure-texmf #:rest _)
+ "Ensure TEXMFVAR is writable and \"ls-R\" database is not required."
+ ;; Default TEXMFVAR value is relative to $HOME, which is not set during
+ ;; build. This location is used for generating font metrics or building
+ ;; documentation.
+ (setenv "TEXMFVAR" (string-append (getcwd) "/texmf-var"))
+ ;; By default, a "ls-R" file must exist in TEXMFDIST. However, it isn't
+ ;; generated in the TeX Live tree used to build a package. Consequently,
+ ;; relax this requirement.
+ (setenv "TEXMF" "{$TEXMFSYSVAR,$TEXMFDIST}"))
(define* (delete-drv-files #:rest _)
"Delete pre-generated \".drv\" files in order to prevent build failures."
@@ -297,7 +302,7 @@ runfile to replace. If a file has no matching runfile, it
is ignored."
(delete 'bootstrap)
(delete 'configure)
(add-after 'unpack 'patch-shell-scripts patch-shell-scripts)
- (add-before 'build 'set-texmfvar set-texmfvar)
+ (add-before 'build 'configure-texmf configure-texmf)
(add-before 'build 'delete-drv-files delete-drv-files)
(add-after 'delete-drv-files 'generate-font-metrics generate-font-metrics)
(replace 'build build)