Subject: bug#53339: [version-1.4.0] Package with texlive-updmap.cfg and texlive-amsfonts failing to find Euler

From: [email-masked]
Date: Fri, 21 Jan 2022 10:51:44 +0900

Ricardo Wurmus <[email-masked]> wrote:
> 
> Ricardo Wurmus <[email-masked]> writes:
> 
> > [email-masked] writes:
> >
> >> Attached patch on top of version-1.4.0 attempts to typset PDF docs for the
> >> metamath package. However, the below error results, which seems to indicate
> >> that the Euler fonts are not found, despite texlive-amsfonts existing in the
> >> texlive-updmap.cfg input.
> >>
> >>     (/gnu/store/s952x1vkbbcprklzlzimn3m2dn53mjx9-texlive-amsfonts-59745/share/texmf-dist/tex/latex/amsfonts/ueuf.fd)
> >>     kpathsea: Running mktextfm eufm10
> >>     mkdir: cannot create directory ?././homeless-shelter?: Permission denied
> >>     mktextfm: mktexdir /homeless-shelter/.texlive2021/texmf-var/fonts/tfm/ams/euler failed.
> >>     kpathsea: Appending font creation commands to missfont.log.
> >>     
> >>     ! Font U/euf/m/n/10=eufm10 at 10.0pt not loadable: Metric (TFM) file not found.
> >>     <to be read again>
> >
> > This is a problem with the texlive-amsfonts package.  The tlpdb says
> > that it should provide eufm10.tfm, but it doesn’t.
> 
> It now does.

That was quick.

> Commit 374464a3bbd38f43784af0cdf54ddceed93e41bd adds a new
> texlive-amsfonts/fixed and adds it to the replacement field of
> texlive-amsfonts, so it should be grafted.
> 
> > We can avoid these problems by checking that all texlive packages
> > produce all the outputs that the tlpdb specifies.  The texlive importer
> > already works with the tlpdb; we’d just need some sort of automatic
> > test.  We could do this as part of an optional build phase.

Okay. I see that commit on master.
Building again, however, the original problem persists:

    ! Font U/euf/m/n/10=eufm10 at 10.0pt not loadable: Metric (TFM) file not found.

The new texlive-amsfonts/fixed don't need to list eufm10 targets?

> Commit 5ecb4acdcb95478c6efe63bf9caa4db6bda82aba implements the most
> basic check.  We can’t use it during the build, because tlpdb currently
> needs modules that aren’t available on the build side (e.g. those to
> build texlive-bin and look up a file it provides), but it can be used in
> a REPL:
> 
>     ,use (guix import texlive)
>     (files-differ? "/gnu/store/aiknpz049bqbr73s58yaqk3ln7hq8n4x-texlive-amsfonts-fixed-59745/share/" "amsfonts")
> 
> This should return the empty list.  As should this, which lists files
> that should not have been installed according to the tlpdb:
> 
>     (files-differ? "/gnu/store/aiknpz049bqbr73s58yaqk3ln7hq8n4x-texlive-amsfonts-fixed-59745/share/" "amsfonts" #:direction 'extra)
> 
> The fixed package installs exactly the files it is supposed to and
> nothing more.

Both of those files-differ? invocations do indeed return empty lists for me. As a
sanity check, I re-confirmed that the document typesets within a texlive --pure
environment. So what gives?

$ guix time-machine --commit=4821e3eb4edd532bb236973a986e609634d0ab28 -- shell --pure texlive findutils
bash-5.1$ find -L $GUIX_ENVIRONMENT -name '*eufm10*'
/gnu/store/r0dn677n122jqi3wh0sp3b3kpjavyv2r-profile/share/texmf-dist/fonts/afm/public/amsfonts/euler/eufm10.afm
/gnu/store/r0dn677n122jqi3wh0sp3b3kpjavyv2r-profile/share/texmf-dist/fonts/tfm/public/amsfonts/euler/eufm10.tfm
/gnu/store/r0dn677n122jqi3wh0sp3b3kpjavyv2r-profile/share/texmf-dist/fonts/type1/public/amsfonts/euler/eufm10.pfb
/gnu/store/r0dn677n122jqi3wh0sp3b3kpjavyv2r-profile/share/texmf-dist/fonts/type1/public/amsfonts/euler/eufm10.pfm

but...

$ ./pre-inst-env guix shell texlive-asmfosnts  # on commit fad6a742351a599219dabcd152327afc39e4e3cf
$ find -L $GUIX_ENVIRONMENT -name '*eufm10*'
/gnu/store/77vyrxxaa7xn0wfmam20477nakc7v5di-profile/share/texmf-dist/fonts/afm/public/amsfonts/euler/eufm10.afm
/gnu/store/77vyrxxaa7xn0wfmam20477nakc7v5di-profile/share/texmf-dist/fonts/tfm/public/amsfonts/euler/eufm10.tfm
/gnu/store/77vyrxxaa7xn0wfmam20477nakc7v5di-profile/share/texmf-dist/fonts/type1/public/amsfonts/euler/eufm10.pfb
/gnu/store/77vyrxxaa7xn0wfmam20477nakc7v5di-profile/share/texmf-dist/fonts/type1/public/amsfonts/euler/eufm10.pfm

Is my package definition just missing something obvious?