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