Bug 1965547 - Python packages failing to build with texlive 2021
Summary: Python packages failing to build with texlive 2021
Keywords:
Status: CLOSED RAWHIDE
Alias: None
Product: Fedora
Classification: Fedora
Component: texlive
Version: rawhide
Hardware: Unspecified
OS: Unspecified
unspecified
unspecified
Target Milestone: ---
Assignee: Tom "spot" Callaway
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2021-05-28 00:40 UTC by Miro Hrončok
Modified: 2021-07-06 16:39 UTC (History)
5 users (show)

Fixed In Version:
Doc Type: If docs needed, set a value
Doc Text:
Clone Of:
Environment:
Last Closed: 2021-07-06 16:39:07 UTC
Type: Bug
Embargoed:


Attachments (Terms of Use)

Description Miro Hrončok 2021-05-28 00:40:03 UTC
After the recent texlive upgrade, I see the following failures:

https://koschei.fedoraproject.org/package/python-mplcairo?collection=f35
https://koschei.fedoraproject.org/package/python-matplotlib?collection=f35

No package found for: tex(cmsy10.tfm)
No package found for: tex(cmmi10.tfm)
No package found for: tex(cmb10.tfm)
No package found for: tex(cmex10.tfm)
No package found for: tex(cmss10.tfm)


------------


https://koschei.fedoraproject.org/package/python-nbconvert?collection=f35

    Problem: package texlive-scheme-full-9:svn54074-40.fc35.noarch requires texlive-collection-latexextra, but none of the providers can be installed
    - conflicting requests
    - nothing provides texlive-beamerthemenord needed by texlive-collection-latexextra-9:svn59009-40.fc35.noarch


------------


https://koschei.fedoraproject.org/package/python-sphinx?collection=f35

This is pdfTeX, Version 3.141592653-2.6-1.40.22 (TeX Live 2021) (preloaded format=pdflatex)
 restricted \write18 enabled.
entering extended mode
(pdflatex/python.tex
LaTeX2e <2020-10-01> patch level 4
L3 programming layer <2021-05-07> (./sphinxmanual.cls
Document Class: sphinxmanual 2019/12/01 v2.3.0 Document class (Sphinx manual)
(/usr/share/texlive/texmf-dist/tex/latex/base/report.cls
Document Class: report 2020/04/10 v1.4m Standard LaTeX document class
(/usr/share/texlive/texmf-dist/tex/latex/base/size10.clo)))
(/usr/share/texlive/texmf-dist/tex/latex/base/inputenc.sty)
(/usr/share/texlive/texmf-dist/tex/latex/cmap/cmap.sty)
(/usr/share/texlive/texmf-dist/tex/latex/base/fontenc.sty<<t1.cmap>>)
(/usr/share/texlive/texmf-dist/tex/latex/amsmath/amsmath.sty
For additional information on amsmath, use the `?' option.
(/usr/share/texlive/texmf-dist/tex/latex/amsmath/amstext.sty
(/usr/share/texlive/texmf-dist/tex/latex/amsmath/amsgen.sty))
(/usr/share/texlive/texmf-dist/tex/latex/amsmath/amsbsy.sty)
(/usr/share/texlive/texmf-dist/tex/latex/amsmath/amsopn.sty))
(/usr/share/texlive/texmf-dist/tex/latex/amsfonts/amssymb.sty
(/usr/share/texlive/texmf-dist/tex/latex/amsfonts/amsfonts.sty))
(/usr/share/texlive/texmf-dist/tex/generic/babel/babel.sty
(/usr/share/texlive/texmf-dist/tex/generic/babel/babel.def
(/usr/share/texlive/texmf-dist/tex/generic/babel/txtbabel.def))
(/usr/share/texlive/texmf-dist/tex/generic/babel-english/english.ldf))
(/usr/share/texlive/texmf-dist/tex/latex/psnfss/times.sty)
(/usr/share/texlive/texmf-dist/tex/latex/fncychap/fncychap.sty) (./sphinx.sty
(/usr/share/texlive/texmf-dist/tex/generic/ltxcmds/ltxcmds.sty)
(/usr/share/texlive/texmf-dist/tex/latex/graphics/graphicx.sty
(/usr/share/texlive/texmf-dist/tex/latex/graphics/keyval.sty)
(/usr/share/texlive/texmf-dist/tex/latex/graphics/graphics.sty
(/usr/share/texlive/texmf-dist/tex/latex/graphics/trig.sty)
(/usr/share/texlive/texmf-dist/tex/latex/graphics-cfg/graphics.cfg)
(/usr/share/texlive/texmf-dist/tex/latex/graphics-def/pdftex.def)))
(/usr/share/texlive/texmf-dist/tex/latex/fancyhdr/fancyhdr.sty)
(/usr/share/texlive/texmf-dist/tex/latex/base/textcomp.sty)
(/usr/share/texlive/texmf-dist/tex/latex/titlesec/titlesec.sty)
(/usr/share/texlive/texmf-dist/tex/latex/tabulary/tabulary.sty
(/usr/share/texlive/texmf-dist/tex/latex/tools/array.sty))
(/usr/share/texlive/texmf-dist/tex/latex/tools/longtable.sty)
(/usr/share/texlive/texmf-dist/tex/latex/varwidth/varwidth.sty)
(./sphinxmulticell.sty)
(/usr/share/texlive/texmf-dist/tex/latex/base/makeidx.sty)
(/usr/share/texlive/texmf-dist/tex/latex/framed/framed.sty)
(/usr/share/texlive/texmf-dist/tex/latex/xcolor/xcolor.sty
(/usr/share/texlive/texmf-dist/tex/latex/graphics-cfg/color.cfg))
(/usr/share/texlive/texmf-dist/tex/latex/fancyvrb/fancyvrb.sty)
(./footnotehyper-sphinx.sty)
(/usr/share/texlive/texmf-dist/tex/latex/float/float.sty)
(/usr/share/texlive/texmf-dist/tex/latex/wrapfig/wrapfig.sty)
(/usr/share/texlive/texmf-dist/tex/latex/parskip/parskip.sty
(/usr/share/texlive/texmf-dist/tex/latex/parskip/parskip-2001-04-09.sty))
(/usr/share/texlive/texmf-dist/tex/latex/base/alltt.sty)
(/usr/share/texlive/texmf-dist/tex/latex/upquote/upquote.sty)
(/usr/share/texlive/texmf-dist/tex/latex/capt-of/capt-of.sty)
(/usr/share/texlive/texmf-dist/tex/latex/needspace/needspace.sty)
(/usr/share/texlive/texmf-dist/tex/latex/tools/multicol.sty)
(./sphinxhighlight.sty)
(/usr/share/texlive/texmf-dist/tex/latex/kvoptions/kvoptions.sty
(/usr/share/texlive/texmf-dist/tex/generic/kvsetkeys/kvsetkeys.sty)))
(/usr/share/texlive/texmf-dist/tex/latex/geometry/geometry.sty
(/usr/share/texlive/texmf-dist/tex/generic/iftex/ifvtex.sty
(/usr/share/texlive/texmf-dist/tex/generic/iftex/iftex.sty)))
(/usr/share/texlive/texmf-dist/tex/latex/hyperref/hyperref.sty
(/usr/share/texlive/texmf-dist/tex/generic/pdftexcmds/pdftexcmds.sty
(/usr/share/texlive/texmf-dist/tex/generic/infwarerr/infwarerr.sty))
(/usr/share/texlive/texmf-dist/tex/generic/kvdefinekeys/kvdefinekeys.sty)
(/usr/share/texlive/texmf-dist/tex/generic/pdfescape/pdfescape.sty)
(/usr/share/texlive/texmf-dist/tex/latex/hycolor/hycolor.sty)
(/usr/share/texlive/texmf-dist/tex/latex/letltxmacro/letltxmacro.sty)
(/usr/share/texlive/texmf-dist/tex/latex/auxhook/auxhook.sty)
(/usr/share/texlive/texmf-dist/tex/latex/hyperref/pd1enc.def)
(/usr/share/texlive/texmf-dist/tex/latex/hyperref/hyperref-langpatches.def)
(/usr/share/texlive/texmf-dist/tex/generic/intcalc/intcalc.sty)
(/usr/share/texlive/texmf-dist/tex/generic/etexcmds/etexcmds.sty)
(/usr/share/texlive/texmf-dist/tex/latex/hyperref/puenc.def)
(/usr/share/texlive/texmf-dist/tex/latex/url/url.sty)
(/usr/share/texlive/texmf-dist/tex/generic/bitset/bitset.sty
(/usr/share/texlive/texmf-dist/tex/generic/bigintcalc/bigintcalc.sty))
(/usr/share/texlive/texmf-dist/tex/latex/base/atbegshi-ltx.sty))
(/usr/share/texlive/texmf-dist/tex/latex/hyperref/hpdftex.def
(/usr/share/texlive/texmf-dist/tex/latex/base/atveryend-ltx.sty)
(/usr/share/texlive/texmf-dist/tex/latex/rerunfilecheck/rerunfilecheck.sty
(/usr/share/texlive/texmf-dist/tex/generic/uniquecounter/uniquecounter.sty)))
(/usr/share/texlive/texmf-dist/tex/latex/oberdiek/hypcap.sty)
(./sphinxmessages.sty)
Writing index file python.idx
(/usr/share/texlive/texmf-dist/tex/latex/psnfss/t1ptm.fd)
(/usr/share/texlive/texmf-dist/tex/latex/l3backend/l3backend-pdftex.def)
No file python.aux.
(/usr/share/texlive/texmf-dist/tex/context/base/mkii/supp-pdf.mkii
[Loading MPS to PDF converter (version 2006.09.02).]
) (/usr/share/texlive/texmf-dist/tex/latex/epstopdf-pkg/epstopdf-base.sty
(/usr/share/texlive/texmf-dist/tex/latex/latexconfig/epstopdf-sys.cfg))
*geometry* driver: auto-detecting
*geometry* detected driver: pdftex
(/usr/share/texlive/texmf-dist/tex/latex/hyperref/nameref.sty
(/usr/share/texlive/texmf-dist/tex/latex/refcount/refcount.sty)
(/usr/share/texlive/texmf-dist/tex/generic/gettitlestring/gettitlestring.sty))
(/usr/share/texlive/texmf-dist/tex/latex/psnfss/t1phv.fd)<<ot1.cmap>>
(/usr/share/texlive/texmf-dist/tex/latex/amsfonts/umsa.fd)
(/usr/share/texlive/texmf-dist/tex/latex/amsfonts/umsb.fd) [1

pdfTeX warning: pdflatex (file pdftex.map): cannot open font map file
] [2] [1] [2]
Chapter 1.
(/usr/share/texlive/texmf-dist/tex/latex/psnfss/t1pcr.fd)
Underfull \vbox (badness 10000) detected at line 145
[1 <./img.png (PNG copy)>]
Underfull \vbox (badness 10000) detected at line 145

Underfull \vbox (badness 10000) detected at line 145

Overfull \vbox (2.0pt too high) has occurred while \output is active [2]
[3] [4]
Chapter 2.

Underfull \vbox (badness 10000) detected at line 154
[5]
No file python.ind.
[6 <./tall.png>] [7 <./sphinx.png (PNG copy)>] (pdflatex/python.aux)

LaTeX Warning: Label(s) may have changed. Rerun to get cross-references right.


Package rerunfilecheck Warning: File `python.out' has changed.
(rerunfilecheck)                Rerun to get outlines right
(rerunfilecheck)                or use package `bookmark'.

 )
(see the transcript file for additional information)
!pdfTeX error: pdflatex (file ptmb8r): Font ptmb8r at 600 not found
 ==> Fatal error occurred, no output PDF file produced!

kpathsea: Running mktexpk --mfmode / --bdpi 600 --mag 1+0/600 --dpi 600 ptmb8r
/usr/bin/mktexpk: line 160: gsftopk: command not found
mktexpk: don't know how to create bitmap font for ptmb8r.
mktexpk: perhaps ptmb8r is missing from the map file.
kpathsea: Appending font creation commands to missfont.log.



Please let me know if we need to change something in our packages. Thanks.

Comment 1 Tom "spot" Callaway 2021-05-28 02:04:06 UTC
I think I know how to fix these, I'll work on it first thing tomorrow morning.

Comment 2 Mattias Ellert 2021-05-28 10:17:12 UTC
My R packages tracked in koschei all strted failing with

LaTeX errors found:
!pdfTeX error: pdflatex (file ptmb8r): Font ptmb8r at 1493 not found
 ==> Fatal error occurred, no output PDF file produced!

I guess this is the same issue.

Comment 3 Miro Hrončok 2021-05-31 22:09:17 UTC
(In reply to Miro Hrončok from comment #0)
> https://koschei.fedoraproject.org/package/python-mplcairo?collection=f35
> https://koschei.fedoraproject.org/package/python-matplotlib?collection=f35
> 
> No package found for: tex(cmsy10.tfm)
> No package found for: tex(cmmi10.tfm)
> No package found for: tex(cmb10.tfm)
> No package found for: tex(cmex10.tfm)
> No package found for: tex(cmss10.tfm)

The packages now resolve correctly, thanks.

Unfortunately there are actual test failures wrt ghostscript and dvi, I'll wait for a Koschei rebuild with texlive-base-9:20210325-35 before looking into it.




> https://koschei.fedoraproject.org/package/python-nbconvert?collection=f35
> 
>     Problem: package texlive-scheme-full-9:svn54074-40.fc35.noarch requires
> texlive-collection-latexextra, but none of the providers can be installed
>     - conflicting requests
>     - nothing provides texlive-beamerthemenord needed by
> texlive-collection-latexextra-9:svn59009-40.fc35.noarch

This has been resolved. Thanks.

Comment 4 Miro Hrončok 2021-05-31 22:44:46 UTC
https://koschei.fedoraproject.org/package/python-mplcairo?collection=f35

Fails on ppc64le only, with a difference in generated output in test_rcupdate.
Not sure if this is a problem in texlive or in the test. There is a tolerance so maybe ppc64le is the only one when it does not pass the bar.



https://koschei.fedoraproject.org/package/python-matplotlib?collection=f35

Fails on all three tracked architectures with:

E           ValueError: No usable font file found for b'Helvetica' (TeX: b'phvr8r'); the font may lack a Type-1 version

Package texlive-helvetic (provides tex(phvr8r.tfm)) is installed.

In addition to that, on ppc64le AND aarch64, it fails with a difference in generated output in test_rcupdate, similarly to mplcairo.



https://koschei.fedoraproject.org/package/python-sphinx?collection=f35 was fixed, thanks!

Comment 5 Elliott Sales de Andrade 2021-05-31 23:17:57 UTC
That test has always had a high tolerance, because CI was still on Ubuntu 16.04. We can increase the tolerance for those, or backport some updates from https://github.com/matplotlib/matplotlib/pull/20233

Comment 6 Tom "spot" Callaway 2021-06-01 13:52:27 UTC
(In reply to Miro Hrončok from comment #4)
> https://koschei.fedoraproject.org/package/python-mplcairo?collection=f35
> 
> Fails on ppc64le only, with a difference in generated output in
> test_rcupdate.
> Not sure if this is a problem in texlive or in the test. There is a
> tolerance so maybe ppc64le is the only one when it does not pass the bar.
> 
> 
> 
> https://koschei.fedoraproject.org/package/python-matplotlib?collection=f35
> 
> Fails on all three tracked architectures with:
> 
> E           ValueError: No usable font file found for b'Helvetica' (TeX:
> b'phvr8r'); the font may lack a Type-1 version
> 
> Package texlive-helvetic (provides tex(phvr8r.tfm)) is installed.

This should be fixed in texlive-base-20210325-35. One big change in TeXLive 2021 is that they dropped the "updmap-map" component, which used to hold pre-generated system font maps for every font in TeXLive/CTAN. Without that, the font maps need to be regenerated to match the system, or no fonts are found, which is why you're getting that error, even though the font files (the .tfm files) are present.

The texlive-kpathsea triggers (at the top of the TL dependency tree) now generate system TL font maps based on the fonts which are installed (and redo this if any new fonts are installed or removed), and should resolve this and any similar issues (like the R issues).

Comment 7 Tom "spot" Callaway 2021-06-01 19:28:08 UTC
Well, I spoke too soon. Testing with python-matplotlib and I get that error even when I have a valid pdftex.map (generated by updmap-sys). I suspect something needs to be updated in the tex specific bits of the matplotlib code, but I can't be sure.

Comment 8 Elliott Sales de Andrade 2021-06-01 21:27:01 UTC
Is that all done at install time, or at runtime? Previously, I've had issues with (pdf|lua|xe)latex generating caches at runtime in parallel, and had to add at the beginning of %check:

mktexfmt latex.fmt
mktexfmt lualatex.fmt
mktexfmt pdflatex.fmt
mktexfmt xelatex.fmt

If these maps are done at runtime, then we might need to do something similar? If not, then it'd be a problem in Matplotlib.


The `.map` file parsing has been updated on master though, that might fix it as well.

Comment 9 Elliott Sales de Andrade 2021-06-04 06:50:21 UTC
I looked at the pdftex.map from my F34 system and there is one line starting with phvr8r:

phvr8r NimbusSanL-Regu " TeXBase1Encoding ReEncodeFont " <8r.enc <uhvr8a.pfb

However, in Rawhide mock, there are two:

phvr8r NimbusSanL-Regu " TeXBase1Encoding ReEncodeFont " <8r.enc <uhvr8a.pfb
phvr8r Helvetica " TeXBase1Encoding ReEncodeFont " <8r.enc

The first Nimbus comes from ps2pk35.map in both, while the second Helvetica one comes from dvipdfm35.map.

When Matplotlib reads the map file, it treats it as a map keyed off the texname. This means that the latter replaces the former, and it has no filename, which is what fails. I'm a bit confused why it's only this one test that seems to trigger it though.

Is that file correct to have two entries? Does pdftex pick the first one instead? Or merge the two entries together?

Comment 10 Elliott Sales de Andrade 2021-06-04 08:00:02 UTC
I opened https://src.fedoraproject.org/rpms/python-matplotlib/pull-request/35 to fix the Python 3.10 rebuild, which

1. Increases tolerance for the rcupdate test.
2. Changes the style of the other failing test, which makes it use different fonts.

This does not quite fix the problem, as Helvetica must still be broken, but I don't know why it only fails one test right now.

Comment 11 Elliott Sales de Andrade 2021-06-05 03:13:36 UTC
The effective input is the following:


\documentclass{article}
\newcommand{\mathdefault}[1]{#1}
\usepackage{type1cm}
\renewcommand{\rmdefault}{pnc}
\usepackage{helvet}
\usepackage{courier}
\usepackage[utf8]{inputenc}
\DeclareUnicodeCharacter{2212}{\ensuremath{-}}
\usepackage[papersize=72in, margin=1in]{geometry}

\makeatletter\@ifpackageloaded{textcomp}{}{\usepackage{textcomp}}\makeatother
\pagestyle{empty}
\begin{document}
% The empty hbox ensures that a page is printed even for empty inputs, except
% when using psfrag which gets confused by it.
\fontsize{12.000000}{15.000000}%
\ifdefined\psfrag\else\hbox{}\fi%
{\sffamily test tex $123$}
\end{document}

which is converted to dvi by:

latex -interaction=nonstopmode --halt-on-error 09020a26a0bc4c4e13ce1a86017a5740.tex

then parsed by Matplotlib to find phvr8r being used, which is looked up on pdftex.map. Now, there could be bugs in there, but if you run dvipdfm on it:

$ dvipdfm 09020a26a0bc4c4e13ce1a86017a5740.dvi
09020a26a0bc4c4e13ce1a86017a5740.dvi -> 09020a26a0bc4c4e13ce1a86017a5740.pdf
[1
dvipdfm:warning: PK font is found for font "phvr8r" but non built-in encoding "TeXBase1Encoding" is specified.
dvipdfm:warning: >> Assuming this is for glyph name assignment.
]
3591 bytes written

The font is also embedded as an unnamed Type 3 font. This warning does not occur if I comment out the second phvr8r line, and the font becomes a Type 1C of Nimbus Sans.

So I don't know too much about pdftex.map's origins, but it seems like tacking on info from dvipdfm35.map is not desired?

Comment 12 Mattias Ellert 2021-06-07 07:32:29 UTC
My R packages have now built successfully in koschei - no changes needed in the spec files.

Comment 13 Elliott Sales de Andrade 2021-06-09 00:24:55 UTC
Even more confusingly, pdflatex (which is what pdftex.map is for really), handles those lines differently than dvipdfm. If you run pdflatex on the source file, then it outputs several warnings like:

pdfTeX warning: pdflatex (file /usr/share/texlive/texmf-var/fonts/map/pdftex/up
dmap/pdftex.map): fontmap entry for `phvr8r' already exists, duplicates ignored

as well as warnings like:

pdfTeX warning: pdflatex (file /usr/share/texlive/texmf-var/fonts/map/pdftex/up
dmap/pdftex.map): invalid entry for `ptmro8y': SlantFont/ExtendFont can be used
 only with embedded Type1 fonts

So it picks the first entry, which is a bug in Matplotlib, but also a bug in this pdftex.map file.

Comment 14 Tom "spot" Callaway 2021-06-23 17:29:54 UTC
texlive-base-20210325-37 and texlive-2021-43 are building now in rawhide, and in those builds, I've renamed dvipdfm35.map to dvipdfm35.oldmap. I also needed to rename psnfss.map to psnfss.oldmap, since it does the same thing. This preserves these files in case they're somehow useful to someone, but doesn't let them get pulled into the pdftex.map generation by the kpathsea triggers that run updmap-sys.

In my local testing, updating to these packages fixes the pdftex.map file in a way that seems to resolve this TeX failure in python-matplotlib.

Comment 15 Tom "spot" Callaway 2021-07-06 16:39:07 UTC
I threw a scratch-build of python-matplotlib through rawhide and it succeeded:
https://koji.fedoraproject.org/koji/taskinfo?taskID=71401738

I'm going to close this out, but please reopen if needed.


Note You need to log in before you can comment on or make changes to this bug.