0

Hiyo, so, I'm trying to build various Docker images for the different TeXLive schemes infraonly, minimal, basic, small, medium, and full. But, as of lately, I cannot build the most recent TeXlive version (as of this writing tl-20210622); my weekly builds fail at installing already the minimal scheme. The important section of the log reads:

Skipping module "grouptypes"; Loading module "interactionmodes";
Skipping module "nodetypes"; Skipping module "iftypes";)
(/usr/local/texlive/texmf-dist/tex/generic/config/language.def
(/usr/local/texlive/texmf-dist/tex/generic/hyphen/hyphen.tex)
! I can't find file `dehypht-x-2021-02-26.tex'.
\addlanguage ...me =#5 \uselanguage {#1}\input #2 
                                                  \if *#3*\else \input #3 \f...
l.32 ...1-02-26}{dehypht-x-2021-02-26.tex}{}{2}{2}
                                                  
(Press Enter to retry, or Control-D to exit)
Please type another input file name: 
! Emergency stop.
\addlanguage ...me =#5 \uselanguage {#1}\input #2 
                                                  \if *#3*\else \input #3 \f...
l.32 ...1-02-26}{dehypht-x-2021-02-26.tex}{}{2}{2}
                                                  
!  ==> Fatal error occurred, no output PDF file produced!
Transcript written on pdftex.log.
fmtutil [INFO]: log file copied to: /usr/local/texlive/texmf-var/web2c/pdftex/pdftex.log
fmtutil [INFO]: --- remaking etex with pdftex
fmtutil: running `pdftex -ini   -jobname=etex -progname=etex -translate-file=cp227.tcx *etex.ini' ...

The lengthy console log, including all the commands I entered from starting the docker image and all the console output I received, can be found here: https://pastebin.com/E3s4QAXh

My steps to reproduce:

  1. docker run -it ubuntu:focal /bin/bash
  2. apt update && apt install packages like curl, wget, etc.
  3. cd /tmp/texlive
  4. wget --user=anonymous --password=ftp --no-parent --no-verbose --recursive --no-directories http://mirrors.ctan.org/systems/texlive/tlnet/install-tl-unx.tar.gz
  5. ./install-tl -profile=/tmp/texlive/texlive.profile -repository=http://mirrors.ctan.org/systems/texlive/tlnet/
  6. export PATH="/usr/local/texlive/bin/x86_64-linux/:$PATH" and hash -r
  7. tlmgr install scheme-minimal

The last step is where it fails. It also fails if I want to tlmgr install scheme-basic or tlmgr install scheme-small, only works when I tlmgr install scheme-medium.

This leads me to believe that there is something wrong in how the schemes are set up i.e., some file is missing in scheme-basic that is only available when installing scheme-medium. Surprisingly though, I installed scheme-infraonly locally on my Ubuntu 20.04 a few weeks ago and that worked like it should. I did install the different schemes sequentially.

My texlive.profile file looks like this

# texlive.profile written on Thu Jun 10 13:55:38 2021 UTC
# It will NOT be updated and reflects only the
# installation profile at installation time.
selected_scheme scheme-infraonly
TEXDIR /usr/local/texlive
TEXMFCONFIG ~/.texlive/texmf-config
TEXMFHOME ~/texmf
TEXMFLOCAL /usr/local/texlive/texmf-local
TEXMFSYSCONFIG /usr/local/texlive//texmf-config
TEXMFSYSVAR /usr/local/texlive//texmf-var
TEXMFVAR ~/.texlive/texmf-var
binary_x86_64-linux 1
instopt_adjustpath 0
instopt_adjustrepo 1
instopt_letter 0
instopt_portable 0
instopt_write18_restricted 1
tlpdbopt_autobackup 1
tlpdbopt_backupdir tlpkg/backups
tlpdbopt_create_formats 1
tlpdbopt_desktop_integration 1
tlpdbopt_file_assocs 1
tlpdbopt_generate_updmap 0
tlpdbopt_install_docfiles 1
tlpdbopt_install_srcfiles 1
tlpdbopt_post_code 1
tlpdbopt_sys_bin /usr/local/bin
tlpdbopt_sys_info /usr/local/share/info
tlpdbopt_sys_man /usr/local/share/man
tlpdbopt_w32_multi_user 1

What am I missing here? I first thought I might have a gotten a bad mirror, but tried it on several days, at different hours of the day, and even from different machines. No difference.

The dockerfiles I use are hosted at https://gitlab.com/philipptempel/docker-ubuntu-tug-texlive/-/tree/latest and you are more than invited to clone, fork, try, etc.

2
  • well if something is wrong in the scheme setup then the best thing is to write to the texlive mailing list. Such errors are normally corrected fast. Jun 22 at 8:35
  • Guess that's my best bet then. I just didn't assume it has anything to do with the scheme setup as I can get the installation to work outside of Docker, but not inside of Docker. Jun 23 at 7:20
0

The problem was introduced by me because there were, inadvertently, two slashes in the config values for TEXMFSYSCONFIG and TEXMFSYSVAR. As Norbert pointed out on the tex-live mailing list, these values are used by kpse which interprets consecutive slashes as recursive directory resolving. Consequently, my texlive.profile was wrong and basically said TEXMFSYSCONFIG /usr/local/texlive/*/texmf-config, in unix-shell manner.

I had no idea about this implementation detail of kpse or, actually, despite seeing the double slash, didn't assume they would be causing any problem/harm.

After fixing this small typo, everything works as intended.

Long story short: best is to ause a valid texlive.profile.

PS: There is no robust solution to this problem on the side of TeX Live i.e., no sanitizing checks of the configuration values. As such, my sloppy mistake helped discover an edge case of failure.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.