#27339 closed defect (fixed)
pdflatex.fmt doesn't match pdftex.pool
Reported by: | skymoo (Adam Mercer) | Owned by: | drkp (Dan Ports) |
---|---|---|---|
Priority: | Normal | Milestone: | |
Component: | ports | Version: | 1.9.2 |
Keywords: | Cc: | ygramul.el.multiple@…, vinc17@… | |
Port: | texlive |
Description
Updated one of my boxes (PowerMac G5) to the TeXLive 2010 ports yesterday and since then I've been getting build errors in LaTeX documents:
his is pdfTeX, Version 3.1415926-1.40.11 (TeX Live 2010/MacPorts 2010_0) restricted \write18 enabled. ---! /opt/local/var/db/texmf/web2c/pdftex/pdflatex.fmt doesn't match pdftex.pool (Fatal format file error; I'm stymied) make[1]: *** [dvi-local] Error 1 make: *** [dvi-recursive] Error 1
Googling suggests that another pdflatex.fmt is interfering with the build, but there is not another on the system. Also the other example of this issue I've found include the path to the file that is causing the issue, so I'm not sure whats going on here.
Attachments (3)
Change History (25)
comment:1 follow-up: 2 Changed 14 years ago by drkp (Dan Ports)
Status: | new → assigned |
---|
comment:2 Changed 14 years ago by skymoo (Adam Mercer)
Replying to dports@…:
I don't know why this happens, but
sudo fmtutil-sys --all
will fix it
Thanks, that did the trick.
Replying to dports@…:
Are you using a flat registry or sqlite? If flat, the post-deactivate hooks won't get run, which can't help (though I still couldn't reproduce it). Did you upgrade with
port upgrade outdated
or something else?
This box is using the sqlite registry. I upgraded with port -u upgrade outdated
comment:4 Changed 14 years ago by ygramul.el.multiple@…
Hi, I also have this problem. If there's any test I can do, I'll be glad to help :-)
comment:6 Changed 14 years ago by vinc17@…
Same problem, and sudo fmtutil-sys --all
doesn't fix anything.
comment:7 Changed 14 years ago by vinc17@…
I get at the end:
This is a summary of all `failed' messages: `luatex -ini -jobname=luatex -progname=luatex luatex.ini' failed `luatex -ini -jobname=dviluatex -progname=dviluatex dviluatex.ini' failed `pdftex -ini -jobname=pdftex -progname=pdftex -translate-file=cp227.tcx *pdfetex.ini' failed `pdftex -ini -jobname=etex -progname=etex -translate-file=cp227.tcx *etex.ini' failed `pdftex -ini -jobname=pdfetex -progname=pdfetex -translate-file=cp227.tcx *pdfetex.ini' failed `pdftex -ini -jobname=eplain -progname=eplain -translate-file=cp227.tcx *eplain.ini' failed `pdftex -ini -jobname=mllatex -progname=mllatex -translate-file=cp227.tcx -mltex mllatex.ini' failed `pdftex -ini -jobname=latex -progname=latex -translate-file=cp227.tcx *latex.ini' failed `pdftex -ini -jobname=pdflatex -progname=pdflatex -translate-file=cp227.tcx *pdflatex.ini' failed `luatex -ini -jobname=dvilualatex -progname=dvilualatex dvilualatex.ini' failed `luatex -ini -jobname=lualatex -progname=lualatex lualatex.ini' failed `mpost -ini -jobname=mpost -progname=mpost mpost.mp' failed `mpost -ini -jobname=mfplain -progname=mfplain mfplain.ini' failed `aleph -ini -jobname=aleph -progname=aleph *aleph.ini' failed `aleph -ini -jobname=lamed -progname=lamed *lambda.ini' failed `xetex -ini -jobname=xetex -progname=xetex -etex xetex.ini' failed `xetex -ini -jobname=xelatex -progname=xelatex -etex xelatex.ini' failed
comment:8 Changed 14 years ago by vinc17@…
The output shows the errors:
! I can't find file `loadhyph-mn-cyrl-x-2a.tex'. \addlanguage ...me =#5 \uselanguage {#1}\input #2 \if *#3*\else \input #3 \f... l.185 ...ian2a}{loadhyph-mn-cyrl-x-2a.tex}{}{2}{2}
comment:9 follow-up: 11 Changed 14 years ago by vinc17@…
The problem is a missing dependency: texlive-lang-mongolian should have been upgraded before the port that runs fmtutil-sys. I think that for those who got the problem, fmtutil-sys was run before the texlive-lang-mongolian upgrade, hence the failure. I haven't upgraded texlive-lang-mongolian yet, and that's why I still get the failure. In the texlive-lang-mongolian Portfile diff:
texlive.languages \ {mongolian loadhyph-mn-cyrl.tex 2 2 {}} \ - {mongolian2a loadhyph-mn-cyrl-x-2a.tex 2 2 {}} + {mongolianlmc loadhyph-mn-cyrl-x-lmc.tex 2 2 {}}
So, until the upgrade, /opt/local/etc/texmf/language.d/10texlive-lang-mongolian.def still contains loadhyph-mn-cyrl-x-2a.tex instead of the new loadhyph-mn-cyrl-x-lmc.tex, corresponding to the file provided by the new texlive-basic port.
comment:10 follow-up: 12 Changed 14 years ago by vinc17@…
After the texlive-lang-mongolian upgrade, I still get the following failures with sudo fmtutil-sys --all
:
fmtutil: running `mpost -ini -jobname=mpost -progname=mpost mpost.mp' ... /opt/local/bin/fmtutil: line 375: mpost: command not found Error: `mpost -ini -jobname=mpost -progname=mpost mpost.mp' failed fmtutil: running `mpost -ini -jobname=mfplain -progname=mfplain mfplain.ini' ... /opt/local/bin/fmtutil: line 375: mpost: command not found Error: `mpost -ini -jobname=mfplain -progname=mfplain mfplain.ini' failed fmtutil: running `aleph -ini -jobname=aleph -progname=aleph *aleph.ini' ... /opt/local/bin/fmtutil: line 375: aleph: command not found Error: `aleph -ini -jobname=aleph -progname=aleph *aleph.ini' failed fmtutil: running `aleph -ini -jobname=lamed -progname=lamed *lambda.ini' ... /opt/local/bin/fmtutil: line 375: aleph: command not found Error: `aleph -ini -jobname=lamed -progname=lamed *lambda.ini' failed fmtutil: running `xetex -ini -jobname=xetex -progname=xetex -etex xetex.ini' ... /opt/local/bin/fmtutil: line 375: xetex: command not found Error: `xetex -ini -jobname=xetex -progname=xetex -etex xetex.ini' failed fmtutil: running `xetex -ini -jobname=xelatex -progname=xelatex -etex xelatex.ini' ... /opt/local/bin/fmtutil: line 375: xetex: command not found Error: `xetex -ini -jobname=xelatex -progname=xelatex -etex xelatex.ini' failed
but they seem to be harmless in my case (I do not use mpost/aleph/xetex). At least the pdflatex problem is solved.
comment:11 follow-up: 14 Changed 14 years ago by drkp (Dan Ports)
Replying to vinc17@…:
The problem is a missing dependency: texlive-lang-mongolian should have been upgraded before the port that runs fmtutil-sys. I think that for those who got the problem, fmtutil-sys was run before the texlive-lang-mongolian upgrade, hence the failure. I haven't upgraded texlive-lang-mongolian yet, and that's why I still get the failure. In the texlive-lang-mongolian Portfile diff:
So, until the upgrade, /opt/local/etc/texmf/language.d/10texlive-lang-mongolian.def still contains loadhyph-mn-cyrl-x-2a.tex instead of the new loadhyph-mn-cyrl-x-lmc.tex, corresponding to the file provided by the new texlive-basic port.
Yes, this seems to be the answer! This missing hyphenation file causes most (all) format generation to fail once texlive-basic is updated and until texlive-lang-mongolian gets updated. And we only rerun fmtutil as necessary, so any formats installed by ports updated in the interim won't be generated properly. (Although even so, I'd have still expected the old formats to be removed by the post-deactivate hook...)
What we'd really like here is the ability to require all installed texlive ports to be upgraded simultaneously to TL2010 and then run fmtutil etc, since the intermediate state with some TL2009 ports and some TL2010 ports installed is not a good one. But we really don't have any way to do that...
Since texlive-lang-mongolian appears to be the only offender here, I can make texlive-basic deactivate an old texlive-lang-mongolian before running fmtutil, which should solve the problem.
comment:12 follow-up: 15 Changed 14 years ago by drkp (Dan Ports)
Replying to vinc17@…:
After the texlive-lang-mongolian upgrade, I still get the following failures with
sudo fmtutil-sys --all
:but they seem to be harmless in my case (I do not use mpost/aleph/xetex). At least the pdflatex problem is solved.
Do you have texlive-xetex installed? (and texlive-omega and texlive-metapost)
Either way, this is surprising: if you have it installed, then xetex should exist (and you shouldn't be getting a "command not found" error). If you don't, then the xetex fmtutil lines shouldn't be installed, and you shouldn't be trying to generate the xetex and xelatex formats.
comment:13 Changed 14 years ago by drkp (Dan Ports)
Oh... or maybe you have texlive-xetex installed, but it's still the old 2009 version?
If so, the error is caused by a change in how we install texlive binaries, and is harmless because fmtutil will be rerun (hopefully successfully) once texlive-xetex is updated.
comment:14 Changed 14 years ago by drkp (Dan Ports)
Resolution: | → fixed |
---|---|
Status: | assigned → closed |
Replying to dports@…:
Since texlive-lang-mongolian appears to be the only offender here, I can make texlive-basic deactivate an old texlive-lang-mongolian before running fmtutil, which should solve the problem.
Done in r74766. Format generation now succeeds for me. If anyone's still running into this, please reopen.
comment:15 follow-up: 16 Changed 14 years ago by vinc17@…
Replying to dports@…:
Do you have texlive-xetex installed? (and texlive-omega and texlive-metapost)
The following ports are currently installed: texlive-xetex @14329_1+doc texlive-xetex @17780_0+doc (active) prunille:~> locate bin/xetex /opt/local/bin/xetex /opt/local/libexec/texlive/texbin/xetex /opt/local/var/macports/software/texlive-bin/2009_4+motif/opt/local/bin/xetex /opt/local/var/macports/software/texlive-bin/2009_5+motif/opt/local/bin/xetex /opt/local/var/macports/software/texlive-xetex/17780_0+doc/opt/local/bin/xetex /opt/local/var/macports/software/texlive-xetex/17780_0+doc/opt/local/libexec/texlive/texbin/xetex /opt/local/var/macports/software/texlive_base/2007_7+motif/opt/local/bin/xetex
So, it seems that xetex moved from texlive-bin to texlive-xetex. The partial install could be the source of the problem, like with the hyphenation.
comment:16 Changed 14 years ago by drkp (Dan Ports)
Replying to vinc17@…:
So, it seems that xetex moved from texlive-bin to texlive-xetex. The partial install could be the source of the problem, like with the hyphenation.
Yes, basically. (To be precise: xetex is still *built* by texlive-bin, but because it's not usable without texlive-xetex, it doesn't get installed into $prefix/bin until texlive-xetex creates the symlink.)
In the end this should be harmless. What will happen when you upgrade from texlive 2009 to 2010 is the following:
- updating texlive-bin will remove some of the existing binaries (xetex, aleph, etc) from $prefix/bin
- after updating texlive-basic, fmtutil will be rerun to generate all formats. Not all will succeed, because the binaries for xetex, aleph, etc. aren't present. You should get approximately the same set of errors you posted above.
- after texlive-xetex gets updated, fmtutil will be rerun to generate xetex formats. Since xetex now exists, it should succeed.
- same for texlive-context, texlive-metapost, texlive-omega, etc.
Once all installed texlive ports have been upgraded, all formats should be successfully updated. If you were to run sudo fmtutil-sys --all
afterwards (though you shouldn't need to do so), you shouldn't get any errors. If that's not the case, let me know!
comment:17 Changed 14 years ago by martinezino@…
Resolution: | fixed |
---|---|
Status: | closed → reopened |
i upgrade my port installation today and even after manually running fmtutil-sys --all following errors are reported:
############################################################################### fmtutil: Error! Not all formats have been built successfully. Visit the log files in directory /opt/local/var/db/texmf/web2c for details. ############################################################################### This is a summary of all `failed' messages: `pdftex -ini -jobname=pdftex -progname=pdftex -translate-file=cp227.tcx *pdfetex.ini' failed `pdftex -ini -jobname=etex -progname=etex -translate-file=cp227.tcx *etex.ini' failed `pdftex -ini -jobname=pdfetex -progname=pdfetex -translate-file=cp227.tcx *pdfetex.ini' failed `xetex -ini -jobname=xetex -progname=xetex -etex xetex.ini' failed
comment:18 Changed 14 years ago by drkp (Dan Ports)
Can you provide the contents of /opt/local/var/db/texmf/web2c/pdftex/pdfetex.log
?
Changed 14 years ago by martinezino@…
Attachment: | fmtutil-sys_output.txt added |
---|
fmtutil-sys_output.txt
Changed 14 years ago by martinezino@…
Attachment: | fmtutil-sys--all.okay.txt added |
---|
/opt/local/bin/fmtutil-sys --all output after upgrade to 2010_2
comment:19 Changed 14 years ago by martinezino@…
After
texlive-basic 19496_0 < 19496_1 texlive-bin 2010_1 < 2010_2 texlive-latex 19536_0 < 19536_1
upgrade
/opt/local/bin/fmtutil-sys --all
runs fine now
attachment: fmtutil-sys--all.okay.txt
thank you!
comment:20 Changed 14 years ago by drkp (Dan Ports)
Resolution: | → fixed |
---|---|
Status: | reopened → closed |
comment:21 follow-up: 22 Changed 3 years ago by informatimago (Pascal J. Bourguignon)
Please, reopen it. This occurred again now.
sudo fmtutil-sys --all
solved it. Perhaps this should be added as postinstall when we install or update TeX packages?
comment:22 Changed 3 years ago by drkp (Dan Ports)
Replying to informatimago:
Perhaps this should be added as postinstall when we install or update TeX packages?
It is. I don't know why it wouldn't have run for you, unless perhaps your installation/upgrade was aborted?
I don't know why this happens, but
sudo fmtutil-sys --all
will fix itSomeone reported this on IRC last week. I tried to reproduce it but couldn't. fmtutil should get run during the upgrade.
Are you using a flat registry or sqlite? If flat, the post-deactivate hooks won't get run, which can't help (though I still couldn't reproduce it). Did you upgrade with
port upgrade outdated
or something else?