Opened 8 years ago

Closed 8 years ago

#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)

pdfetex.log (30.2 KB) - added by martinezino@… 8 years ago.
pdfetex.log
fmtutil-sys_output.txt (490.9 KB) - added by martinezino@… 8 years ago.
fmtutil-sys_output.txt
fmtutil-sys--all.okay.txt (500.8 KB) - added by martinezino@… 8 years ago.
/opt/local/bin/fmtutil-sys --all output after upgrade to 2010_2

Download all attachments as: .zip

Change History (23)

comment:1 Changed 8 years ago by drkp (Dan Ports)

Status: newassigned

I don't know why this happens, but sudo fmtutil-sys --all will fix it

Someone 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?

comment:2 in reply to:  1 Changed 8 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:3 Changed 8 years ago by ygramul.el.multiple@…

Cc: ygramul.el.multiple@… added

Cc Me!

comment:4 Changed 8 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:5 Changed 8 years ago by vinc17@…

Cc: vinc17@… added

Cc Me!

comment:6 Changed 8 years ago by vinc17@…

Same problem, and sudo fmtutil-sys --all doesn't fix anything.

comment:7 Changed 8 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 8 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 Changed 8 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 Changed 8 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 in reply to:  9 ; Changed 8 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 in reply to:  10 ; Changed 8 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 8 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 in reply to:  11 Changed 8 years ago by drkp (Dan Ports)

Resolution: fixed
Status: assignedclosed

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 in reply to:  12 ; Changed 8 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 in reply to:  15 Changed 8 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 8 years ago by martinezino@…

Resolution: fixed
Status: closedreopened

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 8 years ago by drkp (Dan Ports)

Can you provide the contents of /opt/local/var/db/texmf/web2c/pdftex/pdfetex.log?

Changed 8 years ago by martinezino@…

Attachment: pdfetex.log added

pdfetex.log

Changed 8 years ago by martinezino@…

Attachment: fmtutil-sys_output.txt added

fmtutil-sys_output.txt

Changed 8 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 8 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 8 years ago by drkp (Dan Ports)

Resolution: fixed
Status: reopenedclosed
Note: See TracTickets for help on using tickets.