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)

Reply via email to