Bug#952481: texlive: mktexpk fails to create tcrm1000
Hello Norbert,
Norbert Preining <preining@logic.at> wrote:
> Hi Holger,
>
> On Mon, 24 Feb 2020, Holger Wansing wrote:
> > http://qa-logs.debian.net/2020/02/22/installation-guide_20191229_unstable.log
>
> What is there is
> Writing build.out.el.amd64/html/index.html for book
> Info: creating .pdf file...
>
> kpathsea: Running mktexpk --mfmode / --bdpi 600 --mag 1+0/600 --dpi 600 tcrm1000
> mkdir: cannot create directory ‘build.tmp.el.i386/dblatex/mt7684.tmp’: No such file or directory
> kpathsea: Appending font creation commands to missfont.log.
>
> which means that something in the build process is hosed .. either write
> permissions or whatever, so this is strange.
>
> Furthermore, by default these files are generated in /tmp, unless you
> set TEMPDIR to something else, see /usr/share/texlive/texmf-dist/web2c/mktex.opt
> if test -n "$TMPDIR"; then
> TEMPDIR="${TMPDIR}/mt$$.tmp"
> else
> TEMPDIR="/tmp/mt$$.tmp"
> fi
> ...
> (umask 077 && mkdir "$TEMPDIR") || exit 1
> So if $TMPDIR is not available, then there is something strange going
> on.
The TMPDIR variable is set to 'build.tmp' so it's strange that mktexpk tries to
use 'build.tmp.el.i386' which is in fact not existing...
>
> Anyway, you **don't** want pk fonts (pixel fonts) in a PDF, so you
> **should** depend on the
> cm-super
> fonts to get proper type1 fonts that are scalable (without pixelation).
>
> My guess (wild guess) is the following:
> - before tcrm fonts were not necessary because they were not used by the
> LaTeX kernel, and thus no extra build process (mktex*) was called
> - the new LaTeX kernel requires tc fonts (because textcomp is loaded)
> - your package *always* had some setup that prevented creating of
> directories or similar
> - the recent changes made this obvious.
>
> So as said, there are two things to be done:
> - either make the directory writable, then the fonts will be generated
> and included into the pdf properly
Hmm, no, that does not work: if I create the 'build.tmp.el.i386' dir from
above by hand, the mktexpk call does no longer fail, however the PDF is not
generated, the process fails at another (later) step.
> - depend on cm-super
> or both.
I installed cm-super on the machine, but the build fails with the same error
(with the same mktexph call).
However, I wonder what's going on at all with fonts:
we call dblatex with
(TMPDIR=$tempdir/dblatex dblatex -q -V -T db2latex -b xetex -p ./stylesheets/dblatex.xsl \
-o $tempdir/install.${language}.pdf \
$tempdir/install.${language}.profiled.xml --param=lingua=${language} )
and in the dblatex.xsl file we set the fonts to use, like this:
<xsl:param name="xetex.font">
<xsl:choose>
<xsl:when test="contains(/book/@lang,'ja')">
<xsl:text>\usepackage{xeCJK} </xsl:text>
<xsl:text>\setCJKmainfont{VL-PGothic-Regular} </xsl:text>
<xsl:text>\setCJKsansfont{VL-PGothic-Regular} </xsl:text>
<xsl:text>\setCJKmonofont{VL-PGothic-Regular} </xsl:text>
<xsl:text>\setmainfont{VL-PGothic-Regular} </xsl:text>
<xsl:text>\setsansfont{VL-PGothic-Regular} </xsl:text>
<xsl:text>\setmonofont{VL-PGothic-Regular} </xsl:text>
</xsl:when>
<xsl:when test="contains(/book/@lang,'ko')">
<xsl:text>\usepackage{xeCJK} </xsl:text>
<xsl:text>\usepackage[hangul]{kotex} </xsl:text>
<xsl:text>\setCJKmainfont{Noto Serif CJK KR} </xsl:text>
<xsl:text>\setCJKsansfont{Noto Sans CJK KR} </xsl:text>
<xsl:text>\setCJKmonofont{Noto Sans Mono CJK KR} </xsl:text>
<xsl:text>\setmainfont{Noto Serif CJK KR} </xsl:text>
<xsl:text>\setsansfont{Noto Sans CJK KR} </xsl:text>
<xsl:text>\setmonofont{Noto Sans Mono CJK KR} </xsl:text>
</xsl:when>
<xsl:when test="contains(/book/@lang,'zh')">
<xsl:text>\usepackage{xeCJK} </xsl:text>
<xsl:text>\setCJKmainfont{WenQuanYi Micro Hei} </xsl:text>
<xsl:text>\setCJKsansfont{WenQuanYi Micro Hei} </xsl:text>
<xsl:text>\setCJKmonofont{WenQuanYi Micro Hei Mono} </xsl:text>
<xsl:text>\setmainfont{WenQuanYi Micro Hei} </xsl:text>
<xsl:text>\setsansfont{WenQuanYi Micro Hei} </xsl:text>
<xsl:text>\setmonofont{WenQuanYi Micro Hei Mono} </xsl:text>
</xsl:when>
<xsl:otherwise>
<xsl:text>\setmainfont{FreeSerif} </xsl:text>
<xsl:text>\setsansfont{FreeSans} </xsl:text>
<xsl:text>\setmonofont{FreeMono} </xsl:text>
</xsl:otherwise>
</xsl:choose>
</xsl:param>
So, for the failing Greek variant the 'otherwise' clause is matching, and
the Free-font fonts from the 'fonts-freefont-ttf' debian-package are used.
Why mktexpk is called to use that jknappen font from tcrm?
Am I missing something here?
Thanks
Holger
PS: in case you need the original code of installation-guide, it's here:
https://salsa.debian.org/installer-team/installation-guide/-/tree/master/build
the PDF generation is in buildone.sh starting from line 186.
--
Holger Wansing <hwansing@mailbox.org>
PGP-Fingerprint: 496A C6E8 1442 4B34 8508 3529 59F1 87CA 156E B076
Reply to: