Subject: Re: [bug#78424] [PATCH] gnu: texlive-libkpathsea: Add definitions for XDG paths.

From: Nicolas Goaziou <[email-masked]>
Date: Fri, 16 May 2025 08:58:35 +0200

Hello,

Liliana Marie Prikler <[email-masked]> writes:

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

It looks good.

Perhaps we could also fix in an additional step a little mistake
I introduced in the recent TeX Live update: cache and config files are
created in, e.g., "$XDG_CACHE_HOME/.texliveYYYY/texmf-var", but it would
make sense to put them in "$XDG_CACHE_HOME/texliveYYYY/texmf-var"
instead.

WDYT?

Regards,
-- 
Nicolas Goaziou