Subject: [PATCH] gnu: texlive-libkpathsea: Add definitions for XDG paths.

From: Liliana Marie Prikler <[email-masked]>
Date: Wed, 14 May 2025 13:46:01 +0200

Without these paths set, if they are unset in the environment, jobs that need
to read from/write to TEXMFVAR or TEXMFCONFIG will fail.  If set, environment
variables take precedence.

* gnu/packages/tex.scm (texlive-libkpathsea): Add replacement, pointing to…
(texlive-libkpathsea/fixed): … this.  Add definitions for XDG_CACHE_HOME and
XDG_CONFIG_HOME.
---
 gnu/packages/tex.scm | 18 ++++++++++++++++++
 1 file changed, 18 insertions(+)

diff --git a/gnu/packages/tex.scm b/gnu/packages/tex.scm
index 99a65641a4a..e2fe5554a0c 100644
--- a/gnu/packages/tex.scm
+++ b/gnu/packages/tex.scm
@@ -296,6 +296,9 @@ (define-public texlive-source
 (define-public texlive-libkpathsea
   (package
     (name "texlive-libkpathsea")
+    ;; TODO: ungraft on tex-team or a dedicated branch,
+    ;; integrating the missing definitions.
+    (replacement texlive-libkpathsea/fixed)
     (version (package-version texlive-source))
     (source
      (origin
@@ -395,6 +398,21 @@ (define-public texlive-libkpathsea
 of user-specified directories similar to how shells look up executables.")
     (license license:lgpl2.1)))
 
+(define texlive-libkpathsea/fixed
+  (package
+    (inherit texlive-libkpathsea)
+    (arguments
+     (substitute-keyword-arguments (package-arguments texlive-libkpathsea)
+       ((#:phases phases)
+        #~(modify-phases #$phases
+            (add-after 'customize-texmf.cnf 'fix-texmf.cnf
+              (lambda _
+                (substitute* "texk/kpathsea/texmf.cnf"
+                  (("^TEXMFVAR = .*" all)
+                   (string-append "XDG_CACHE_HOME = ~/.cache\n" all))
+                  (("^TEXMFCONFIG = .*" all)
+                   (string-append "XDG_CONFIG_HOME = ~/.config\n" all)))))))))))
+
 (define-public texlive-libptexenc
   (package
     (name "texlive-libptexenc")

base-commit: 5f5d84beccc180f1b51474c0e47eb6e0d0c9175f
-- 
2.49.0