asymptote build fails: Math formula deleted: Insufficient symbol fonts.

  • Done
  • quality assurance status badge
Details
2 participants
  • Pierre Neidhardt
  • Ricardo Wurmus
Owner
unassigned
Submitted by
Pierre Neidhardt
Severity
normal
P
P
Pierre Neidhardt wrote on 12 Jan 2020 15:58
(address . bug-guix@gnu.org)
87r20467sd.fsf@ambrevar.xyz
Asymptote only succeeds building randomly on Berlin. On my machine, it
systematically fails with

Toggle snippet (106 lines)
$ guix build --check --no-grafts asymptote
[...]
starting phase `install'
if test ! -s revision.cc || test "2.61" != "2.61"; then \
echo "const char *REVISION="\"2.61\"\; > revision.cc; \
echo const char *AsyGLVersion=\"1.00\"\; >> revision.cc; \
if test ! -e base/webgl/asygl.js; then \
cp base/webgl/asygl-1.00.js base/webgl/asygl.js; \
fi \
fi
g++ -Wall -DHAVE_CONFIG_H -D_FILE_OFFSET_BITS=64 -DUSEGC -pthread -DFFTWPP_SINGLE_THREAD -I/gnu/store/3xs3dnc28p9fi8in7hkfcdx20incrdvq-libgc-7.6.12/include/gc -I/usr/include/tirpc -std=c++11 -g -O3 -fno-var-tracking -o revision.o -c revision.cc;
echo string VERSION=\"2.61\"\; > base/version.asy
echo @set VERSION 2.61 > doc/version.texi
echo @set Datadir /gnu/store/6x374bczmq65fr7qglqxwjhhwlqjlyq1-asymptote-2.61/share >> doc/version.texi
echo "#!/usr/bin/env python3" > GUI/xasyVersion.py
echo xasyVersion = \"2.61\" >> GUI/xasyVersion.py
if test -n ""; then \
cat asy.rc | sed -e "s/ASYMPTOTE_VERSION/2.61/" | \
windres -o asy.o; \
fi
if test -n ""; then \
g++ -Wall -DHAVE_CONFIG_H -D_FILE_OFFSET_BITS=64 -DUSEGC -pthread -DFFTWPP_SINGLE_THREAD -I/gnu/store/3xs3dnc28p9fi8in7hkfcdx20incrdvq-libgc-7.6.12/include/gc -I/usr/include/tirpc -std=c++11 -g -O3 -fno-var-tracking -o asy camperror.o path.o drawpath.o drawlabel.o picture.o psfile.o texfile.o util.o settings.o guide.o flatguide.o knot.o drawfill.o path3.o drawpath3.o drawsurface.o beziercurve.o bezierpatch.o pen.o pipestream.o types.o builtin.o gsl.o runtime.o runbacktrace.o runpicture.o runlabel.o runhistory.o runarray.o runfile.o runsystem.o runpair.o runtriple.o runpath.o runpath3d.o runstring.o runmath.o env.o genv.o stm.o dec.o errormsg.o callable.o name.o symbol.o entry.o exp.o newexp.o stack.o camp.tab.o lex.yy.o access.o virtualfieldaccess.o absyn.o record.o interact.o fileio.o fftw++asy.o simpson.o coder.o coenv.o impdatum.o locate.o parser.o program.o application.o varinit.o fundec.o refaccess.o envcompleter.o process.o constructor.o array.o Delaunay.o predicates.o PRCbitStream.o oPRCFile.o PRCdouble.o writePRC.o glrender.o tr.o shaders.o jsfile.o main.o revision.o asy.o glew.o -lglut -lrt -lz -L/gnu/store/3xs3dnc28p9fi8in7hkfcdx20incrdvq-libgc-7.6.12/lib -lgc -lreadline -ltermcap -lfftw3 -lgsl -lgslcblas -lGL -lgdi32 -lwinmm -s -static; \
else \
ln -sf GUI/xasy.py xasy; \
g++ -Wall -DHAVE_CONFIG_H -D_FILE_OFFSET_BITS=64 -DUSEGC -pthread -DFFTWPP_SINGLE_THREAD -I/gnu/store/3xs3dnc28p9fi8in7hkfcdx20incrdvq-libgc-7.6.12/include/gc -I/usr/include/tirpc -std=c++11 -g -O3 -fno-var-tracking -o asy camperror.o path.o drawpath.o drawlabel.o picture.o psfile.o texfile.o util.o settings.o guide.o flatguide.o knot.o drawfill.o path3.o drawpath3.o drawsurface.o beziercurve.o bezierpatch.o pen.o pipestream.o types.o builtin.o gsl.o runtime.o runbacktrace.o runpicture.o runlabel.o runhistory.o runarray.o runfile.o runsystem.o runpair.o runtriple.o runpath.o runpath3d.o runstring.o runmath.o env.o genv.o stm.o dec.o errormsg.o callable.o name.o symbol.o entry.o exp.o newexp.o stack.o camp.tab.o lex.yy.o access.o virtualfieldaccess.o absyn.o record.o interact.o fileio.o fftw++asy.o simpson.o coder.o coenv.o impdatum.o locate.o parser.o program.o application.o varinit.o fundec.o refaccess.o envcompleter.o process.o constructor.o array.o Delaunay.o predicates.o PRCbitStream.o oPRCFile.o PRCdouble.o writePRC.o glrender.o tr.o shaders.o jsfile.o main.o revision.o glew.o -lglut -lrt -lz -L/gnu/store/3xs3dnc28p9fi8in7hkfcdx20incrdvq-libgc-7.6.12/lib -lgc -lreadline -lncurses -lfftw3 -lgsl -lgslcblas -lGL ; \
fi
Creating asy-keywords.el
./asy -dir base -config "" -render=0 -l > asy.list
ls base/*.asy | grep -v plain\* | \
grep -v three_\* | grep -v featpost3D | xargs ./asy -dir base -config "" -render=0 -l >> asy.list
perl ./asy-list.pl asy.list 2.61
cd doc && make asy-latex.pdf
make[1]: Entering directory '/tmp/guix-build-asymptote-2.61.drv-0/asymptote-2.61/doc'
pdflatex asy-latex.dtx
This is pdfTeX, Version 3.14159265-2.6-1.40.19 (TeX Live 2018) (preloaded format=pdflatex)
restricted \write18 enabled.
entering extended mode
(./asy-latex.dtx
LaTeX2e <2018-04-01> patch level 2
(/gnu/store/21mmsf9y6wjb1lj8kphdc1mqdgp00xrd-texlive-union-49435/share/texmf-dist/tex/latex/base/docstrip.tex
Utility: `docstrip' 2.5e <2014/09/29>
English documentation <2017/03/13>

**********************************************************
* This program converts documented macro-files into fast *
* loadable files by stripping off (nearly) all comments! *
**********************************************************

********************************************************
* No Configuration file found, using default settings. *
********************************************************

)Input index file asy-latex.idx not found.
Usage: makeindex [-ilqrcgLT] [-s sty] [-o ind] [-t log] [-p num] [idx0 idx1 ...]
system returned with code 256
Input index file asy-latex.glo not found.
Usage: makeindex [-ilqrcgLT] [-s sty] [-o ind] [-t log] [-p num] [idx0 idx1 ...]
system returned with code 256


Generating file(s) ./asymptote.sty

Processing file asy-latex.dtx (pkg) -> asymptote.sty
Lines processed: 722
Comments removed: 282
Comments passed: 0
Codelines passed: 424


Generating file(s) ./asy-latex.ins

Processing file asy-latex.dtx (batchfile) -> asy-latex.ins
Lines processed: 722
Comments removed: 282
Comments passed: 0
Codelines passed: 424

(/gnu/store/21mmsf9y6wjb1lj8kphdc1mqdgp00xrd-texlive-union-49435/share/texmf-dist/tex/latex/base/ltxdoc.cls
Document Class: ltxdoc 2018/03/15 v2.0x Standard LaTeX documentation class
(/gnu/store/21mmsf9y6wjb1lj8kphdc1mqdgp00xrd-texlive-union-49435/share/texmf-dist/tex/latex/base/article.cls
Document Class: article 2014/09/29 v1.4h Standard LaTeX document class
(/gnu/store/21mmsf9y6wjb1lj8kphdc1mqdgp00xrd-texlive-union-49435/share/texmf-dist/tex/latex/base/size10.clo)) (/gnu/store/21mmsf9y6wjb1lj8kphdc1mqdgp00xrd-texlive-union-49435/share/texmf-dist/tex/latex/base/doc.sty (/gnu/store/21mmsf9y6wjb1lj8kphdc1mqdgp00xrd-texlive-union-49435/share/texmf-dist/tex/latex/tools/multicol.sty)))
Writing index file asy-latex.idx
No file asy-latex.aux.
(./asy-latex.dtx
! Math formula deleted: Insufficient symbol fonts.
\endtabular ->\crcr \egroup \egroup $
\egroup
l.60 % \maketitle
?
! Emergency stop.
\endtabular ->\crcr \egroup \egroup $
\egroup
l.60 % \maketitle
! ==> Fatal error occurred, no output PDF file produced!
Transcript written on asy-latex.log.
make[1]: *** [Makefile:20: asy-latex.pdf] Error 1
make[1]: Leaving directory '/tmp/guix-build-asymptote-2.61.drv-0/asymptote-2.61/doc'
make: *** [Makefile:183: sty] Error 2
command "make" "install" failed with status 2
builder for `/gnu/store/n96jkms4b54jl7g261qk9ykrx6pdfdrl-asymptote-2.61.drv' failed with exit code 1
build of /gnu/store/n96jkms4b54jl7g261qk9ykrx6pdfdrl-asymptote-2.61.drv failed

--
Pierre Neidhardt
-----BEGIN PGP SIGNATURE-----

iQEzBAEBCAAdFiEEUPM+LlsMPZAEJKvom9z0l6S7zH8FAl4bNBIACgkQm9z0l6S7
zH/efQf/X/x0jsJLn3/2ElhAHZXKY+8N2F3zFI3xF3XS6N5R0Y5+FcP504ufdHh9
H1XuHE2TSLNGfKEGH1XCjlNMTaFhJ+u51p7vGMIgY1ji6E/eAtpgVS0s09p5h8uD
oTzVZd/D0vR5JaknPlvnS5WJ1zPYIdFT3jsfcTj6Fjd7mjFs1AF1lWLIXncffK6T
wLyy8Ej2BSyZxy++kW73TKuTU1rDxNvFzqcH9BMtL30MhSvghvbmkQfYu6pyESsU
jlLaXrQ60B84RE9drt8onQH6I1qFKBPZaj1NJdQ3/R5AqiAxfz4mC0W2InlU/ZYx
PwjKC8xweGJs62T7uRC0XCNW1ESsiw==
=+8Vt
-----END PGP SIGNATURE-----

R
R
Ricardo Wurmus wrote on 5 May 2021 15:53
(name . Pierre Neidhardt)(address . mail@ambrevar.xyz)
87fsz1s2w6.fsf@elephly.net
Hi Pierre,

Toggle quote (3 lines)
> Asymptote only succeeds building randomly on Berlin. On my
> machine, it
> systematically fails with
[…]
Toggle quote (2 lines)
> ! Math formula deleted: Insufficient symbol fonts.

Lars and I just ran into this problem with python-nbconvert after
I changed it to use texlive-union. It built just fine on our
respective laptops, but it would fail on ci.guix.gnu.org and
another build farm.

Because TeX is a mystery to me I resorted to running the failing
xelatex invocation under strace on ci.guix.gnu.org and my laptop
to see where they diverge. LaTeX looks for fonts by reading the
“share/texmf-dist/fonts/tfm/” directory in the texlive-union; on
the different machines the order of directories differed. On my
laptop LaTeX would find the fonts provided by texlive-cm first; on
the build farms it would find the fonts provided by
texlive-amsfonts first.

The immediate problem here was that texlive-amsfonts accidentally
produced too many fonts — not just those it should but also
conversions of files from its own inputs, including those provided
by texlive-cm. So I added texlive-amsfonts/patched in commit
9db67988242ad514fa900e840b1494bda6001d6b (we can’t change
texlive-amsfonts on the “master” branch) and rebuilt
python-nbconvert with that new texlive-union. Now that there are
no duplicate fonts, LaTeX won’t find the wrong font first and the
build succeeded.

I’m suspecting that its the same problem with asymptote.

Could you please try this patch and report back? It builds fine
for me.
Toggle diff (13 lines)
diff --git a/gnu/packages/plotutils.scm b/gnu/packages/plotutils.scm
index 7f59bae770..4b89ddafd1 100644
--- a/gnu/packages/plotutils.scm
+++ b/gnu/packages/plotutils.scm
@@ -224,7 +224,7 @@ colors, styles, options and details.")
("perl" ,perl)
("texinfo" ,texinfo) ;For generating documentation
;; For the manual and the tests.
- ("texlive" ,(texlive-union (list texlive-amsfonts
+ ("texlive" ,(texlive-union (list texlive-amsfonts/patched
texlive-epsf
texlive-etoolbox
texlive-latex-base
Thanks!

--
Ricardo
P
P
Pierre Neidhardt wrote on 5 May 2021 16:07
(name . Ricardo Wurmus)(address . rekado@elephly.net)
871ralgtpg.fsf@ambrevar.xyz
Hi Ricardo,

Excellent investigation, and it turns out that it did the trick for
Asymptote! Feel free to patch it.

Thank you so much!

--
Pierre Neidhardt
-----BEGIN PGP SIGNATURE-----

iQFGBAEBCAAwFiEEUPM+LlsMPZAEJKvom9z0l6S7zH8FAmCSppsSHG1haWxAYW1i
cmV2YXIueHl6AAoJEJvc9Jeku8x/pB0H/Ao4K6q9Y9y9kn9SjC+NFSwTNtTquNJW
80Aln6eezMSq7FlWB8C57cqOwNJAghJhgePGOEoEfOjuSnEIkXCieF+izGsfAwbz
xOKI8nbnTeGShvx/FlqVDomLkkfULFc36BfSfcMNsRBZAq0bQRYHhy+L4JHN9yPM
RaI1YckAEyIB0d6SKJyxRZFF11/23IQ2oz1dYhhuYlgy3kL8qczHFfHAZskfs55K
VvAFMgFRgq2YKfLP1jBci0wH6hIIkaU5Z/z3krRHnP2Z7tuXS6n5agXmOc5kmCam
BPV7LGWT6gWhe5lCpY69N06dFc502nUFTp7ZXwcvLAY+gVMzD4lN3JY=
=pToj
-----END PGP SIGNATURE-----

R
R
Ricardo Wurmus wrote on 5 Jun 2021 09:27
(name . Pierre Neidhardt)(address . mail@ambrevar.xyz)(address . 39101-done@debbugs.gnu.org)
87r1hgu5yf.fsf@elephly.net
Pierre Neidhardt <mail@ambrevar.xyz> writes:

Toggle quote (4 lines)
> Excellent investigation, and it turns out that it did the trick
> for
> Asymptote! Feel free to patch it.

Great! It’s fixed with commit
41bbbd53d2a4b8ad059c9a943e28fe7dda479149.

--
Ricardo
Closed
P
P
Pierre Neidhardt wrote on 5 Jun 2021 09:30
(name . Ricardo Wurmus)(address . rekado@elephly.net)(address . 39101-done@debbugs.gnu.org)
877dj8hipp.fsf@ambrevar.xyz
Thanks a lot!

--
Pierre Neidhardt
-----BEGIN PGP SIGNATURE-----

iQFGBAEBCAAwFiEEUPM+LlsMPZAEJKvom9z0l6S7zH8FAmC7KAISHG1haWxAYW1i
cmV2YXIueHl6AAoJEJvc9Jeku8x/uUkH+wbLWARDAfv8J/Ko2fER/OVjsDvoWhdS
mT6w9l9Iv5zmzmtaq6yaW6NT4n2BnKPHpef/LFcleqxry//KBzBjybIRpAbO+mhH
ADWC1hNGur2e2FB3g/ZCoG1AZGAkBmMEZTavjEWJMLjRWt0MfZCDacl9QaluSjIy
0YbD9VCr8xADWAS7FAdXvH454pc0LBAmrpR66OzqJoVKDSWJkPy6wm5JVjAJ80Mu
r2j3zlp4DPxCxyPG7iWLLKPOJKlJvFFPES8BbBGO8Y+/Y9SNs8oJmyxATxpiQwB4
77aMMIlo2+aqm9MRt8JCjMx7R545C8+8oVsgVvbtXrUy4pCz62lRKwM=
=w87O
-----END PGP SIGNATURE-----

Closed
?