[BUG] texlive-bin doesn't set $TEXMFCACHE properly

  • Open
  • quality assurance status badge
Details
2 participants
  • Maxim Cournoyer
  • Christopher Rodriguez
Owner
unassigned
Submitted by
Christopher Rodriguez
Severity
normal
C
C
Christopher Rodriguez wrote on 25 Apr 2022 20:10
(address . bug-guix@gnu.org)
pkmp4er15l3u3k.fsf@crane.ant.amazon.com
Hello all,

I'm currently switching from using the monolithic texlive package to a
bunch of the broken-out, smaller ones. However, when texlive-bin is
installed (and thus, when luaotfload-tool is available), the environment
variable $TEXMFCACHE is not defined. This leads to it being auto-detected
(and incorrectly identified somehow as
`$PWD/'{'$GUIX_PROFILE/share/texmf-dist` which is read-only.)

As a workaround, I have added an explicit definition for $TEXMFCACHE in
my .bash_profile, but I wanted to report this as a bug in case someone
more familiar with the package could fix it.

--

Christopher Rodriguez
-----BEGIN PGP SIGNATURE-----

iQIzBAEBCAAdFiEEJMQbvYVxvZ0eF/84XZ6FgaGVz3sFAmJm5d8ACgkQXZ6FgaGV
z3vWnRAAm6zSIkro3kWawE1aXFcjpe3qjaD7mOupwL5UpIR4vB9znU8PWtoqLZO4
Ax2bn2maj+jDY8hSivtCMu9U1RrlYcSEX8h1iqYl8CN3JJ/Ifvr7+PGmto2VADE1
uFGVcIJ6uee2vjVRLRp+sNtKBzIqyEeb5nieTzzKuGSKGXltguk3FqOSwTEmeXwF
Z9uCZNwlPZGNorzsAmeEvSnDOj5jRyoP6/gwgcrFhC4/ErJVqwv0wkHnZeSa4dTl
Xfl2R0rc1K7LJJEMBXsyw/yhQBMGyQD8EtW2co8mnMtr3m4mvU3PXuGIKQCTYGf2
XYTv+BCJK8HtUGWu0tax8T6Ly7e8JrgFJp9dZuJiXhkfti6crN7C3bK6Ula1p5rp
0V7w3NJRNmUuVaqTebCbWTPXOSdkgkwKTH04VPI0Y+SJlCSBoi8gxYWb5yzq75iV
MxVOs0Fn0hcy144/yWbW8N0DrCklWWUyyk1FPTwqHORGjG2qadhwQclaQWjvQXdR
z3YFC5bZR45KFelj7KlKVcVzjhNnI0+X1l9ut7MlGkcdifXjKMDwa7xa8tTrC9o/
ayYATobFYZOT3Oph55t6trYQ0Y1aXDuT10AkEBj1CELuQABOwQ9uqNnjWrfo7S3N
1MIfjMG+Gm0nFZu+ctpeCbOG68GusJZ6SvIIzUMxDaxF54BxJ/Y=
=e8+9
-----END PGP SIGNATURE-----

M
M
Maxim Cournoyer wrote on 16 Jul 2022 02:30
(name . Christopher Rodriguez)(address . yewscion@gmail.com)(address . 55113@debbugs.gnu.org)
87h73huceo.fsf@gmail.com
Hi,

Christopher Rodriguez <yewscion@gmail.com> writes:

Toggle quote (9 lines)
> Hello all,
>
> I'm currently switching from using the monolithic texlive package to a
> bunch of the broken-out, smaller ones. However, when texlive-bin is
> installed (and thus, when luaotfload-tool is available), the environment
> variable $TEXMFCACHE is not defined. This leads to it being auto-detected
> (and incorrectly identified somehow as
> `$PWD/'{'$GUIX_PROFILE/share/texmf-dist` which is read-only.)

Could you share your workload to demonstrate the problem (reproducer),
if it's not too complicated? texlive-bin sets GUIX_TEXMF; perhaps
TEXMFCACHE is derived from it in the default texlive config.

Thanks,

Maxim
M
M
Maxim Cournoyer wrote on 16 Jul 2022 02:30
control message for bug #55113
(address . control@debbugs.gnu.org)
87fsj1ucek.fsf@gmail.com
tags 55113 + moreinfo
quit
C
C
Christopher Rodriguez wrote on 28 Jul 2022 22:58
Re: bug#55113: [BUG] texlive-bin doesn't set $TEXMFCACHE properly
(name . Maxim Cournoyer)(address . maxim.cournoyer@gmail.com)
87k07wsy0b.fsf@gmail.com
Sorry for the delay; I came down with the rona and was knocked out of
commission for a while.

Maxim Cournoyer <maxim.cournoyer@gmail.com> writes:

Toggle quote (4 lines)
> Could you share your workload to demonstrate the problem (reproducer),
> if it's not too complicated? texlive-bin sets GUIX_TEXMF; perhaps
> TEXMFCACHE is derived from it in the default texlive config.

Absolutely. I've taken the liberty of uploading a terminal log[1] to
demonstrate.

Basically, as I'm using these piecemeal packages, I am trying to include
as few packages as possible, and therefore keep things minimal. When I
do so, however, the selection of packages does not set TEXMFCACHE. As I
use lualatex, this means it is autodefined, and incorrectly, as the
following (note the braces; might be a failed variable or something?):

{$GUIX_PROFILE/share/texmf-dist/}

This ends up creating a \{/ directory in the same directory as lualatex
is run, and thus doesn't ever create a cache for fonts to use. If the
braces weren't there, it would instead be pointing to a read-only
directory in the store (or rather, a symlink to one) I believe.

The guix shell I used in my example[1] was the following:

guix shell --pure texlive-luaotfload texlive-bin bash \
texlive-tex-ini-files texlive-latex-base tree coreutils

I feel this is the minimal packages needed to show this issue, though
the above will always fail to create a /usable/ cache: It includes none
of the fonts (and so I bail on the compilation while it is looking for a
default font with 'X'. However, the directory has already been created
at this point, and therefore the problem already exists. The same
behavior, minus the failed compilation, can be observed in my full
manifest of texlive packages[2], though some of those are self-defined
in my personal channel[3]).

If GUIX_TEXMF is being set by texlive-bin, perhaps that variable should
be used to set an otherwise-empty TEXMFCACHE in texlive-bin as well? If
overrides are needed, the user could then still set that variable in
their profile. And this would allow the out-of-the-box experience for
piecemeal texlive packages to be smoother. (Also, so long as it points
to a writable directory, it doesn't really matter to me /where/ that
directory is. I chose $HOME/.local/share/texmf-dist/ because it seemed
standard, but I'm necessarily saying it is the 'correct' one.)

What do You think?



--

Christopher Rodriguez
-----BEGIN PGP SIGNATURE-----

iQIzBAEBCAAdFiEEJMQbvYVxvZ0eF/84XZ6FgaGVz3sFAmLjBdQACgkQXZ6FgaGV
z3v9OA//TCi5Idk94iJ3yrM1pUgWqeAptK2ELXFy+8Ku+8LMgOLKWKs0fS2bfNbU
KqdraGBnRUIlAKNAbbG13+MtrRF9I2g9j34rVFLQpJmveuckIBa38dk4uql7Rl4l
Cv5M6UoVttIgJItE97UqHqzZpI/Glrxda3Wqe6L4aL2KY7uhFCHLqVCAn0CH7CnQ
+n483+vqyHO7YrfcZiT/EMI8sS/ats5AIgmmWjGaKtFN9m65n8puQhwr65fVHWBR
YORlXcWp2l1R+LwXTXOXmdiGhAwwC3+OQh84kITOsGlwBXmuQO8gfXp6FItj5msF
e8oYxEVF/yFLQOuyjrMOrSnRV583g1Y8iCU2IS8iJR1e3zyJ7UvXtVg6KAiSXVTm
pG97faal3cHw6mt5Bfo8fFimcJaJA5o2TVYLsin03whL7wHuWM3pZvK3Q9hWKiVc
ZpB8WQmAZtS4wG89xFJZ20HYPHzKjFTZdWdOnG0Dq5bBksed7PLBGd8zUbaZc6aW
5EeuRYHH6zW28l/2EhyOVxlGcowkjvZsCNb8Ii8g3qNnt4paaWvfOK5iNWveiKq4
OUrEoQGWqqTzG9QZHF0Brj0SdlbaGNUbj2nPYGGgbEUl/obIaWLXCRmKHKqlKV7z
7n8db1FkH90jRsx4YbvGgPPWauK5hBO2I5lNOOQgHlG2GpWwmBE=
=5/2b
-----END PGP SIGNATURE-----

?