Various TeX Live problems

OpenSubmitted by Ricardo Wurmus.
Details
One participant
  • Ricardo Wurmus
Owner
unassigned
Severity
normal
R
R
Ricardo Wurmus wrote on 5 Sep 2019 23:17
(address . bug-guix@gnu.org)
87zhjie93b.fsf@elephly.net
Hi Guix,

on the “wip-texlive” branch I just fixed a serious problem with how
texlive-union generates font maps. On the “master” branch it just
doesn’t. On “wip-texlive” we run “updmap-sys” to first remove all
invalid font maps from the default configuration file (which contains
*all* maps, even when they are not installed), and then a second time to
generate maps for all fonts that are actually available (e.g. as inputs
of the texlive union).

This fixes one of the biggest and most confusing problems with TeX Live
in Guix where the various *tex executables would complain about not
being able to find or use certain fonts. This should be fine now.

To demonstrate it I packaged Guile CV, which depends on a few LaTeX
packages and probes for them at configure time. This will not work on
“master”, but it does work on “wip-texlive”.

Despite this step forward, we’re still right in the middle of
overhauling how we deal with TeX Live packages, because I keep running
out of steam :) Help in this area would be greatly appreciated.

Off the top of my head these are things that really ought to be changed
or fixed:

- the profile hook in (guix profiles) should use “texlive-union” from
(gnu packages tex), because it’s rather complicated now, and we don’t
want to repeat ourselves. Currently, installing texlive-* packages
into your profile won’t lead to a fully functional LaTeX installation,
primarily because of screwed up font maps.

- many texlive-* packages still need to be compared to their expected
outputs according to $(guix build
texlive-bin)/share/tlpkg/texlive.tlpdb, especially those with names
matching “texlive-{latex,generic}-*”. Packages that have names of the
newer “texlive-${name}” format (and those using
“simple-texlive-package”) should be complete.

- the “simple-texlive-package” procedure in (gnu packages tex) could be
more helpful for cases where custom build phases are required. Right
now many packages inherit from a template produced by
“simple-texlive-package” and then verbosely add to the build phases
with substitute-keyword-arguments.

- “simple-texlive-package” only installs “doc” files from the sources to
a separate “doc” output when the package is marked as “trivial”. When
texlive-build-system is used it doesn’t do this.

- “simple-texlive-package” requires an awkward custom chdir phase when
texlive-build-system is supposed to be used.

- “simple-texlive-package” installs the “source” directory to the “out”
output. Maybe that’s not what we want.

- “texlive-build-system” causes files to be unpacked to just a single
location, which can be wrong. That’s why some packages have a
“move-files” phase. The reason is that the build system installs
files to an output directory (called “build”) and then copies its
contents to the location specified with the “tex-directory” keyword
argument.

--
Ricardo
?