Skip to content

Instantly share code, notes, and snippets.

@vadimkantorov
Last active November 13, 2020 10:15
Show Gist options
  • Save vadimkantorov/cb638c61afc2fb4526d05e6c4c3b48b6 to your computer and use it in GitHub Desktop.
Save vadimkantorov/cb638c61afc2fb4526d05e6c4c3b48b6 to your computer and use it in GitHub Desktop.
Problem with updmap directories in TexLive

https://www.overleaf.com/learn/latex/Articles/An_introduction_to_Kpathsea_and_how_TeX_engines_search_for_files#Brief_notes_on_.24TEXMF

mkdir -p bug
cd bug

wget https://gist.github.com/vadimkantorov/cb638c61afc2fb4526d05e6c4c3b48b6/raw/db85459a69ab82686a8d42ffb9a2f8895a977e41/texlive.sh
wget https://gist.github.com/vadimkantorov/cb638c61afc2fb4526d05e6c4c3b48b6/raw/db85459a69ab82686a8d42ffb9a2f8895a977e41/latex.sh
wget https://gist.github.com/vadimkantorov/cb638c61afc2fb4526d05e6c4c3b48b6/raw/2b1953f48a329cc30a5d25fd6e34dddb6db90849/bug.sh

MAKEFLAGS=-j4 bash texlive.sh
bash latex.sh

bash bug.sh

xdvipdfmx -o example.pdf example.xdv prints:

...
xdvipdfmx:warning: Couldn't open font map file "pdftex.map".
xdvipdfmx:warning: Couldn't open font map file "kanjix.map".

kpsewhich -debug 32 pdftex.map prints:

kdebug:start search(xname=texmf.cnf, must_exist=1, find_all=1, path=/mnt/c/Users/user/busytex/bug2/texlive/texmf-dist/web2c).
kdebug: path_search(file=texmf.cnf, must_exist=1, find_all=1, path=/mnt/c/Users/user/busytex/bug2/texlive/texmf-dist/web2c)
kdebug:  dir_list_search(file=texmf.cnf, find_all=1, casefold=no)
kdebug:start generic search(files=[ls-r ls-R], must_exist=1, find_all=1, path=/mnt/c/Users/user/busytex/bug2/texmf-local:/mnt/c/Users/user/busytex/bug2/build/texmf-config:/mnt/c/Users/user/busytex/bug2/build/texmf-var:/mnt/c/Users/user/busytex/bug2/texlive/texmf-dist)
kdebug:  dir_list_search_list(files=[ls-r ls-R], find_all=1, casefold=no)
kdebug:returning from generic search([ls-r ls-R]) => /mnt/c/Users/user/busytex/bug2/texlive/texmf-dist/ls-r /mnt/c/Users/user/busytex/bug2/texlive/texmf-dist/ls-R
kdebug:start search(xname=aliases, must_exist=1, find_all=1, path=/mnt/c/Users/user/busytex/bug2/texmf-local:/mnt/c/Users/user/busytex/bug2/build/texmf-config:/mnt/c/Users/user/busytex/bug2/build/texmf-var:/mnt/c/Users/user/busytex/bug2/texlive/texmf-dist).
kdebug: path_search(file=aliases, must_exist=1, find_all=1, path=/mnt/c/Users/user/busytex/bug2/texmf-local:/mnt/c/Users/user/busytex/bug2/build/texmf-config:/mnt/c/Users/user/busytex/bug2/build/texmf-var:/mnt/c/Users/user/busytex/bug2/texlive/texmf-dist)
kdebug:  dir_list_search(file=aliases, find_all=1, casefold=no)
kdebug:  dir_list_search(file=aliases, find_all=1, casefold=yes)
kdebug:   casefold_readable_file(aliases) in /mnt/c/Users/user/busytex/bug2/texlive/texmf-dist => (nil)
kdebug:returning from search(aliases) =>
kdebug:kpse_find_file: searching for pdftex.map of type map (from texmf.cnf)
kdebug:start generic search(files=[pdftex.map], must_exist=0, find_all=0, path=.:/home/vadimkantorov/.texlive2020/texmf-config/fonts/map/kpsewhich//:/home/vadimkantorov/.texlive2020/texmf-var/fonts/map/kpsewhich//:/home/vadimkantorov/texmf/fonts/map/kpsewhich//:!!/mnt/c/Users/user/busytex/bug2/texmf-local/fonts/map/kpsewhich//:!!/mnt/c/Users/user/busytex/bug2/build/texmf-config/fonts/map/kpsewhich//:!!/mnt/c/Users/user/busytex/bug2/build/texmf-var/fonts/map/kpsewhich//:!!/mnt/c/Users/user/busytex/bug2/texlive/texmf-dist/fonts/map/kpsewhich//:/home/vadimkantorov/.texlive2020/texmf-config/fonts/map/pdftex//:/home/vadimkantorov/.texlive2020/texmf-var/fonts/map/pdftex//:/home/vadimkantorov/texmf/fonts/map/pdftex//:!!/mnt/c/Users/user/busytex/bug2/texmf-local/fonts/map/pdftex//:!!/mnt/c/Users/user/busytex/bug2/build/texmf-config/fonts/map/pdftex//:!!/mnt/c/Users/user/busytex/bug2/build/texmf-var/fonts/map/pdftex//:!!/mnt/c/Users/user/busytex/bug2/texlive/texmf-dist/fonts/map/pdftex//:/home/vadimkantorov/.texlive2020/texmf-config/fonts/map/dvips//:/home/vadimkantorov/.texlive2020/texmf-var/fonts/map/dvips//:/home/vadimkantorov/texmf/fonts/map/dvips//:!!/mnt/c/Users/user/busytex/bug2/texmf-local/fonts/map/dvips//:!!/mnt/c/Users/user/busytex/bug2/build/texmf-config/fonts/map/dvips//:!!/mnt/c/Users/user/busytex/bug2/build/texmf-var/fonts/map/dvips//:!!/mnt/c/Users/user/busytex/bug2/texlive/texmf-dist/fonts/map/dvips//:/home/vadimkantorov/.texlive2020/texmf-config/fonts/map///:/home/vadimkantorov/.texlive2020/texmf-var/fonts/map///:/home/vadimkantorov/texmf/fonts/map///:!!/mnt/c/Users/user/busytex/bug2/texmf-local/fonts/map///:!!/mnt/c/Users/user/busytex/bug2/build/texmf-config/fonts/map///:!!/mnt/c/Users/user/busytex/bug2/build/texmf-var/fonts/map///:!!/mnt/c/Users/user/busytex/bug2/texlive/texmf-dist/fonts/map///)
kdebug:  dir_list_search_list(files=[pdftex.map], find_all=0, casefold=no)
kdebug:  dir_list_search_list(files=[pdftex.map], find_all=0, casefold=yes)
kdebug:   casefold_readable_file(pdftex.map) in . => (nil)
kdebug:returning from generic search([pdftex.map]) =>

The {pdfmap,kanjix}.map files exist, but they are under updmap directory which is not present in default texmf.cnf:

find texlive -name pdftex.map
# texlive/texmf-var/fonts/map/pdftex/updmap/pdftex.map

find texlive -name kanjix.map
# texlive/texmf-var/fonts/map/dvipdfmx/updmap/kanjix.map

find texlive -name texmf.cnf
# texlive/texmf-dist/web2c/texmf.cnf
# texlive/texmf.cnf

grep 'fonts/map' texlive/texmf-dist/web2c/texmf.cnf
# TEXFONTMAPS = $TEXMFDOTDIR;$TEXMF/fonts/map/{$progname,pdftex,dvips,}//

Working directory is /mnt/c/Users/user/busytex/bug2/, the system is Ubuntu 18.04 on WSLv1, case-insensitive mount point.

LATEXFMT=$PWD/latex-format/latex.fmt
kpsewhich=$PWD/build/texk/kpathsea/kpsewhich
xetex=$PWD/build/texk/web2c/xetex
xdvipdfmx=$PWD/build/texk/dvipdfm-x/xdvipdfmx
export TEXMFCNF=$PWD/texlive/texmf-dist/web2c
export TEXMFDIST=$PWD/texlive/texmf-dist
export TEXMFVAR=$PWD/texlive/texmf-var
echo '\documentclass[11pt]{article}\begin{document}Hello world\end{document}' > example.tex
$xetex --interaction=nonstopmode --halt-on-error --no-pdf --fmt $LATEXFMT example.tex
$xdvipdfmx -o example.pdf example.xdv
$kpsewhich -debug 32 pdftex.map
xetex=$PWD/build/texk/web2c/xetex
URL_TEXLIVE_INSTALLER=http://mirror.ctan.org/systems/texlive/tlnet/install-tl-unx.tar.gz
wget -nc $URL_TEXLIVE_INSTALLER
mkdir -p install-tl latex-format
tar -xf install-tl-unx.tar.gz --strip-components=1 --directory=install-tl
echo selected_scheme scheme-basic > install-tl.profile
echo TEXDIR $PWD/texlive >> install-tl.profile
echo TEXMFVAR $PWD/texlive/texmf-var >> install-tl.profile
echo TEXMFLOCAL $PWD/texlive/texmf-local >> install-tl.profile
echo TEXMFSYSCONFIG $PWD/texlive/texmf-config >> install-tl.profile
echo TEXMFSYSVAR $PWD/texlive/texmf-var >> install-tl.profile
TEXLIVE_INSTALL_NO_RESUME=1 $PWD/install-tl/install-tl -profile install-tl.profile
TEXINPUTS=texlive/texmf-dist/source/latex/base TEXMFCNF=texlive/texmf-dist/web2c TEXMFDIST=texlive/texmf-dist $xetex --interaction=nonstopmode --halt-on-error --output-directory=./latex-format -ini -etex unpack.ins
TEXINPUTS=texlive/texmf-dist/source/latex/base:texlive/texmf-dist/tex/generic/unicode-data:texlive/texmf-dist/tex/latex/base:texlive/texmf-dist/tex/generic/hyphen:texlive/texmf-dist/tex/latex/l3kernel:texlive/texmf-dist/tex/latex/l3packages/xparse TEXMFCNF=texlive/texmf-dist/web2c TEXMFDIST=texlive/texmf-dist $xetex --interaction=nonstopmode --halt-on-error --output-directory=./latex-format -ini -etex latex.ltx
~
URL_texlive=https://github.com/TeX-Live/texlive-source/archive/9ed922e7d25e41b066f9e6c973581a4e61ac0328.tar.gz
PREFIX=$PWD/prefix
CACHE=$PWD/config.cache
TEXLIVESRC=$PWD/texlive-source
TEXLIVEBLD=$PWD/build
mkdir -p $PREFIX $TEXLIVESRC $TEXLIVEBLD
wget -nc $URL_texlive
tar -xf $(basename $URL_texlive) --strip-components=1 --directory=$TEXLIVESRC
pushd $TEXLIVESRC/texk
rm -rf upmendex dviout-util dvipsk gxdvik dviljk dvipos dvidvi dvipng dvi2tty dvisvgm dtl gregorio cjkutils musixtnt tests ttf2pk2 ttfdump makejvf lcdf-typetools
popd
pushd $TEXLIVEBLD
bash $TEXLIVESRC/configure \
--cache-file=$CACHE \
--prefix=$PREFIX \
--disable-all-pkgs \
--disable-multiplatform \
--enable-static \
--disable-shared \
--enable-web2c \
--enable-xetex \
--enable-dvipdfm-x \
--without-x \
--without-system-kpathsea \
--without-system-ptexenc \
--without-system-cairo \
--without-system-gmp \
--without-system-graphite2 \
--without-system-harfbuzz \
--without-system-libgs \
--without-system-libpaper \
--without-system-mpfr \
--without-system-pixman \
--without-system-poppler \
--without-system-xpdf \
--without-system-icu \
--without-system-fontconfig \
--without-system-freetype2 \
--without-system-libpng \
--without-system-zlib
make $MAKEFLAGS
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment