[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: tetex-bin changes breaks PDF building.



Osamu Aoki <osamu@debian.org> wrote:

> -------------------------------------------------
> Below is log of reproduced bug. Use "make LANGS2=en pdf2" instead
> to get quicker build failure (smaller example.).
> --------------------------------------------------
[...]
> $ make LANGS1=en pdf1
> sed -e "s/@@LANGS@@/en/g" \
>     -e "s/@@DIRS@@/en/g" \
>     -e "s/@@NAME@@/reference/g" \
>         qref.sgml > reference.en.sgml
> ...
> sed -e "s/@@LANGS@@/ru/g" \
>     -e "s/@@DIRS@@/ru/g" \
>     -e "s/@@NAME@@/quick-reference/g" \
>         qref.sgml > quick-reference.ru.sgml
> TEXINPUTS=$(pwd)/texmf/:$(kpsetool -n pdftex -p tex) \
> fmtutil --byfmt pdflatex --fmtdir .

This is the Makefile (unnecessarily) producing its local format file,
and it's producing pdflatex.fmt:

[...]
> No pages of output.
> Transcript written on pdflatex.log.
> fmtutil: /home/osamu/debian-reference-1.07/./pdflatex.fmt installed.
> TEXINPUTS=$(pwd)/texmf/:$(kpsetool -n pdftex -p tex) \
> fmtutil --byfmt pdftex --fmtdir .

This is again the Makefile, now with pdftex.fmt:

> running `pdftex -ini   -jobname=pdftex -progname=pdftex pdftex.ini' ...
[...]
> No pages of output.
> Transcript written on pdftex.log.
> fmtutil: /home/osamu/debian-reference-1.07/./pdftex.fmt installed.

[...]
> bin/debiandoc2latexpdf  -l $(echo en | bin/getlocale) reference.en.sgml
> kpathsea: Running mktexfmt pdflatex.efmt

Now debiandoc2latexpdf is called, and it does not care about formats, it
simply calls "pdflatex" in the path:

ls -l `which pdflatex`
lrwxrwxrwx  1 root root 7 2004-08-16 09:00 /usr/bin/pdflatex -> pdfetex

Since this uses eTeX, it also needs a *.efmt, which it cannot find in
the TEXINPUTS path as tweaked by debian-reference. But (e)TeX is clever
enough to call itself to generate the format - now without the --fmtdir
option: 

> running `pdftex -ini   -jobname=pdflatex -progname=pdflatex pdflatex.ini' ...
[...]
> Transcript written on pdflatex.log.
> rm: cannot remove `/var/lib/texmf/web2c/pdflatex.log': Permission denied
> mv: cannot move `pdflatex.log' to `/var/lib/texmf/web2c/pdflatex.log': Permission denied
> rm: cannot remove `/var/lib/texmf/web2c/pdflatex.fmt': Permission denied
> mv: cannot move `pdflatex.fmt' to `/var/lib/texmf/web2c/pdflatex.fmt': Permission denied
> /usr/share/texmf/web2c/mktexupd: /var/lib/texmf/ls-R unwritable.

And this fails because of the permission problems.

I do not think that more liberal permissions on those files are prudent,
besides it wouldn't solve your problem (because the wrong language.dat
is used).

Changing pdflatex to pdfelatex in the debiandoc2latexpdf script will not
help. I don't get why it stopped the error message for Ray, but anyway
the format used in this case will not use the right language.dat file.

This is just my analysis of the scripts and TeX's behavior. The cleanest
solution, IMO, would be not to create one's own format, but depend on 
recent tetex-base which has all patterns enabled (technically 2.0.2a-2,
but rather 2.0.2a-3 because the first is buggy).


Regards, Frank
-- 
Frank Küster, Biozentrum der Univ. Basel
Abt. Biophysikalische Chemie



Reply to: