Bug 1649084 - pdflatex and others broken because calling dehypht-x-2014-05-21.tex instead of dehypht-x-2018-03-31.tex
Summary: pdflatex and others broken because calling dehypht-x-2014-05-21.tex instead o...
Keywords:
Status: CLOSED ERRATA
Alias: None
Product: Fedora
Classification: Fedora
Component: texlive
Version: 29
Hardware: All
OS: Linux
unspecified
high
Target Milestone: ---
Assignee: Tom "spot" Callaway
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard:
: 1648960 (view as bug list)
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2018-11-12 22:02 UTC by Edgar Hoch
Modified: 2020-06-18 20:05 UTC (History)
6 users (show)

Fixed In Version: texlive-2018-22.fc29
Clone Of:
Environment:
Last Closed: 2018-11-18 03:58:42 UTC
Type: Bug
Embargoed:


Attachments (Terms of Use)
Simple LaTeX file for pdflatex command that shows the error (83 bytes, text/x-tex)
2018-11-12 22:06 UTC, Edgar Hoch
no flags Details
Output of pdflatex command (22.64 KB, text/plain)
2018-11-12 22:08 UTC, Edgar Hoch
no flags Details
Output of "grep -r 2014-05-21 /usr/share/texlive/" (6.13 KB, text/plain)
2018-11-12 22:09 UTC, Edgar Hoch
no flags Details
Output of "grep -r dehypht /usr/share/texlive/" (6.13 KB, text/plain)
2018-11-12 22:10 UTC, Edgar Hoch
no flags Details
Output of "grep -r 2014-05-21 /usr/share/texlive/" (2.29 KB, text/plain)
2018-11-12 22:10 UTC, Edgar Hoch
no flags Details
Output of "grep -r 2018-03-31 /usr/share/texlive/" (11.19 KB, text/plain)
2018-11-12 22:10 UTC, Edgar Hoch
no flags Details
Simple LaTeX file with no usepackage for pdflatex command that shows the error (61 bytes, text/x-tex)
2018-11-13 10:00 UTC, Edgar Hoch
no flags Details
Patch for /usr/share/texlive/texmf-dist/tex/generic/config/language.dat (588 bytes, patch)
2018-11-13 10:22 UTC, Edgar Hoch
no flags Details | Diff
Patch for texlive.spec to fix the wrong dates (5.37 KB, patch)
2018-11-13 22:30 UTC, Edgar Hoch
no flags Details | Diff

Description Edgar Hoch 2018-11-12 22:02:07 UTC
Description of problem:
The current Fedora 29 TEXLive breaks pdflatex and other similar commands!

The problem is that some files want to include dehypht-x-2014-05-21.tex, but the file cannot be found, because the file are now named dehypht-x-2014-05-21.tex .



Version-Release number of selected component (if applicable):
texlive-dehyph-exptl-svn47240-21.fc29.noarch
texlive-hyphen-base-svn48303-21.fc29.noarch
texlive-hyphen-german-svn47375-21.fc29.noarch


How reproducible:
Always

Steps to Reproduce:
1. Call "pdflatex testcase-dehyph-x.tex"

Actual results:
Error, not pdf created, see attachments.

Expected results:
No error, pdf created.

Comment 1 Edgar Hoch 2018-11-12 22:06:11 UTC
Created attachment 1504921 [details]
Simple LaTeX file for pdflatex command that shows the error

Comment 2 Edgar Hoch 2018-11-12 22:08:01 UTC
Created attachment 1504922 [details]
Output of pdflatex command

Comment 3 Edgar Hoch 2018-11-12 22:09:03 UTC
Created attachment 1504923 [details]
Output of "grep -r 2014-05-21 /usr/share/texlive/"

Comment 4 Edgar Hoch 2018-11-12 22:10:08 UTC
Created attachment 1504924 [details]
Output of "grep -r dehypht /usr/share/texlive/"

Comment 5 Edgar Hoch 2018-11-12 22:10:29 UTC
Created attachment 1504925 [details]
Output of "grep -r 2014-05-21 /usr/share/texlive/"

Comment 6 Edgar Hoch 2018-11-12 22:10:59 UTC
Created attachment 1504927 [details]
Output of "grep -r 2018-03-31 /usr/share/texlive/"

Comment 7 Edgar Hoch 2018-11-12 22:13:08 UTC
I think this bug describes the same problem as bug 1648960, but I think my description is more detailed, so I created a new bug.

Comment 8 Edgar Hoch 2018-11-12 22:22:47 UTC
I have added the output of grep for 2014-05-21, so you can see that there are other files that are also called with the old 2014-05-21 date in the name, where there are new files with 2018-03-31 date in the name.

This applies to dehyphn-x*, dehypht-x*, dehyphts-x*.

I found also a reference to ngerman-x-2014-05-21, but not new file ngerman-x-2018-03-31:

/usr/share/texlive/texmf-dist/tex/generic/config/language.dat:ngerman-x-2014-05-21 dehyphn-x-2014-05-21.tex
/usr/share/texlive/texmf-dist/tex/generic/config/language.def:\addlanguage{ngerman-x-2014-05-21}{dehyphn-x-2014-05-21.tex}{}{2}{2}
/usr/share/texlive/texmf-dist/tex/generic/config/language.def:\addlanguage{ngerman-x-latest}{dehyphn-x-2014-05-21.tex}{}{2}{2}

Comment 9 Edgar Hoch 2018-11-13 10:00:24 UTC
Created attachment 1505181 [details]
Simple LaTeX file with no usepackage for pdflatex command that shows the error

I have detected that even a very simple latex file with no usepackage statements triggers the error.

Comment 10 Edgar Hoch 2018-11-13 10:22:07 UTC
Created attachment 1505185 [details]
Patch for /usr/share/texlive/texmf-dist/tex/generic/config/language.dat

I found that for my test files this simple patch solves the problem.

Comment 11 Edgar Hoch 2018-11-13 10:43:22 UTC
(In reply to Edgar Hoch from comment #10)
> Created attachment 1505185 [details]
> Patch for /usr/share/texlive/texmf-dist/tex/generic/config/language.dat
> 
> I found that for my test files this simple patch solves the problem.

But I think the file /usr/share/texlive/texmf-dist/tex/generic/config/language.dat is generated from other files, so this is only a quick fix in the filesystem of a current installation, which works only until the next update. I will check other files for patch for package files.

Comment 12 Edgar Hoch 2018-11-13 11:12:34 UTC
Comment on attachment 1505185 [details]
Patch for /usr/share/texlive/texmf-dist/tex/generic/config/language.dat

To be clear for others who find this bug report:

I did not use this patch for modifying the running system, because file  /usr/share/texlive/texmf-dist/tex/generic/config/language.dat may look different on different systems. So this patch does not work in general; I have created it only for uploading here, but I declare it obsolete.

Instead I have used sed to patch the file. In the following you find the complex command that I have used. It creates a backup file, so I can undo the change if there will be problems during next update of texlive packages, by simply moving the file with postfix .backup-rhbz1649084 to the same without this postfix in the name.

if [[ "$( cut -d: -f5 /etc/system-release-cpe )" = "29" && -r /usr/share/texlive/texmf-dist/tex/generic/config/language.dat ]] ; then if [[ ! -e /usr/share/texlive/texmf-dist/tex/generic/config/language.dat.backup-rhbz1649084 ]] ; then /bin/cp -a /usr/share/texlive/texmf-dist/tex/generic/config/language.dat /usr/share/texlive/texmf-dist/tex/generic/config/language.dat.backup-rhbz1649084 ; fi ; if grep -s -q dehypht-x-2014-05-21.tex /usr/share/texlive/texmf-dist/tex/generic/config/language.dat ; then sed -i.backup-our-patch -e "s/dehyph\([a-z]*\)-x-2014-05-21/dehyph\1-x-2018-03-31/g" /usr/share/texlive/texmf-dist/tex/generic/config/language.dat ; fi ; fi

Comment 13 Edgar Hoch 2018-11-13 21:33:50 UTC
It seams that the problematic old filenames are in the scriptlets of package texlive-dehyph-exptl.

Please can they be updated and a new revision of the package (e.g. all packages from texlive src rpm?) be created?


$ rpm -q --scripts texlive-dehyph-exptl
postinstall scriptlet (using /bin/sh):
if [ $1 -gt 0 ] ; then
sed -i '/german-x-2014-05-21.*/d' /usr/share/texlive/texmf-dist/tex/generic/config/language.dat
echo "german-x-2014-05-21 dehypht-x-2014-05-21.tex" >> /usr/share/texlive/texmf-dist/tex/generic/config/language.dat
sed -i '/=german-x-latest/d' /usr/share/texlive/texmf-dist/tex/generic/config/language.dat
echo "=german-x-latest" >> /usr/share/texlive/texmf-dist/tex/generic/config/language.dat
sed -i '/\\addlanguage{german-x-2014-05-21}.*/d' /usr/share/texlive/texmf-dist/tex/generic/config/language.def
echo "\addlanguage{german-x-2014-05-21}{dehypht-x-2014-05-21.tex}{}{2}{2}" >> /usr/share/texlive/texmf-dist/tex/generic/config/language.def
sed -i '/\\addlanguage{german-x-latest}.*/d' /usr/share/texlive/texmf-dist/tex/generic/config/language.def
echo "\addlanguage{german-x-latest}{dehypht-x-2014-05-21.tex}{}{2}{2}" >> /usr/share/texlive/texmf-dist/tex/generic/config/language.def
sed -i '/ngerman-x-2014-05-21.*/d' /usr/share/texlive/texmf-dist/tex/generic/config/language.dat
echo "ngerman-x-2014-05-21 dehyphn-x-2014-05-21.tex" >> /usr/share/texlive/texmf-dist/tex/generic/config/language.dat
sed -i '/=ngerman-x-latest/d' /usr/share/texlive/texmf-dist/tex/generic/config/language.dat
echo "=ngerman-x-latest" >> /usr/share/texlive/texmf-dist/tex/generic/config/language.dat
sed -i '/\\addlanguage{ngerman-x-2014-05-21}.*/d' /usr/share/texlive/texmf-dist/tex/generic/config/language.def
echo "\addlanguage{ngerman-x-2014-05-21}{dehyphn-x-2014-05-21.tex}{}{2}{2}" >> /usr/share/texlive/texmf-dist/tex/generic/config/language.def
sed -i '/\\addlanguage{ngerman-x-latest}.*/d' /usr/share/texlive/texmf-dist/tex/generic/config/language.def
echo "\addlanguage{ngerman-x-latest}{dehyphn-x-2014-05-21.tex}{}{2}{2}" >> /usr/share/texlive/texmf-dist/tex/generic/config/language.def
fi
:
postuninstall scriptlet (using /bin/sh):
if [ $1 == 0 ] ; then
sed -i '/german-x-2014-05-21.*/d' /usr/share/texlive/texmf-dist/tex/generic/config/language.dat > /dev/null 2>&1
  sed -i '/=german-x-latest/d' /usr/share/texlive/texmf-dist/tex/generic/config/language.dat > /dev/null 2>&1
sed -i '/\\addlanguage{german-x-2014-05-21}.*/d' /usr/share/texlive/texmf-dist/tex/generic/config/language.def > /dev/null 2>&1
sed -i '/\\addlanguage{german-x-latest}.*/d' /usr/share/texlive/texmf-dist/tex/generic/config/language.def > /dev/null 2>&1
sed -i '/ngerman-x-2014-05-21.*/d' /usr/share/texlive/texmf-dist/tex/generic/config/language.dat > /dev/null 2>&1
  sed -i '/=ngerman-x-latest/d' /usr/share/texlive/texmf-dist/tex/generic/config/language.dat > /dev/null 2>&1
sed -i '/\\addlanguage{ngerman-x-2014-05-21}.*/d' /usr/share/texlive/texmf-dist/tex/generic/config/language.def > /dev/null 2>&1
sed -i '/\\addlanguage{ngerman-x-latest}.*/d' /usr/share/texlive/texmf-dist/tex/generic/config/language.def > /dev/null 2>&1
fi
:

Comment 14 Edgar Hoch 2018-11-13 22:30:56 UTC
Created attachment 1505493 [details]
Patch for texlive.spec to fix the wrong dates

Attached is an example patch for texlive.spec. It fixes scriptlets of subpackage dehyph-exptl. I insert the new dates and also remove entries with the old dates, because they may still contained in the files from previous releases. The Release tag needs to be updated to the next higher number for an official build; I use an intermediate number for my own build.

I think it will work, but my mock is still running, but I want to provide the patch now in case someone will start building a new official version.

Comment 15 Edgar Hoch 2018-11-14 00:13:46 UTC
I confirm that the packages I have build with mock with the patched spec file works for me.

Comment 16 Tom "spot" Callaway 2018-11-16 13:58:09 UTC
*** Bug 1648960 has been marked as a duplicate of this bug. ***

Comment 17 Tom "spot" Callaway 2018-11-16 14:00:27 UTC
Edgar, very nice work, thanks for the fix. Sorry that it took so long to get your patch committed.

Comment 18 Fedora Update System 2018-11-16 16:12:54 UTC
texlive-2018-22.fc29 has been submitted as an update to Fedora 29. https://bodhi.fedoraproject.org/updates/FEDORA-2018-ee37c2cff6

Comment 19 Fedora Update System 2018-11-17 04:45:03 UTC
texlive-2018-22.fc29 has been pushed to the Fedora 29 testing repository. If problems still persist, please make note of it in this bug report.
See https://fedoraproject.org/wiki/QA:Updates_Testing for
instructions on how to install test updates.
You can provide feedback for this update here: https://bodhi.fedoraproject.org/updates/FEDORA-2018-ee37c2cff6

Comment 20 Fedora Update System 2018-11-18 03:58:42 UTC
texlive-2018-22.fc29 has been pushed to the Fedora 29 stable repository. If problems still persist, please make note of it in this bug report.

Comment 21 Erik del Toro Streb 2020-06-18 18:41:11 UTC
I think the problem persists or is very similar. I am on Fedora 31.

I cannot compile any tex file.

When I do

    touch foo.tex
    pdflatex foo.tex

it ends up with the following errors:

This is pdfTeX, Version 3.14159265-2.6-1.40.20 (TeX Live 2019) (preloaded format=pdflatex)
 restricted \write18 enabled.

kpathsea: Running mktexfmt pdflatex.fmt
mktexfmt: mktexfmt is using the following fmtutil.cnf files (in precedence order):
mktexfmt:   /usr/share/texlive/texmf-dist/web2c/fmtutil.cnf
mktexfmt: mktexfmt is using the following fmtutil.cnf file for writing changes:
mktexfmt:   /home/erik/.texlive2019/texmf-config/web2c/fmtutil.cnf
mktexfmt [INFO]: writing formats under /home/erik/.texlive2019/texmf-var/web2c
mktexfmt [INFO]: --- remaking pdflatex with pdftex
mktexfmt: running `pdftex -ini   -jobname=pdflatex -progname=pdflatex -translate-file=cp227.tcx *pdflatex.ini' ...
This is pdfTeX, Version 3.14159265-2.6-1.40.20 (TeX Live 2019) (INITEX)
 restricted \write18 enabled.
 (/usr/share/texlive/texmf-dist/web2c/cp227.tcx)
entering extended mode
(/usr/share/texlive/texmf-dist/tex/latex/latexconfig/pdflatex.ini
(/usr/share/texlive/texmf-dist/tex/generic/tex-ini-files/pdftexconfig.tex)
(/usr/share/texlive/texmf-dist/tex/latex/base/latex.ltx
(/usr/share/texlive/texmf-dist/tex/latex/base/texsys.cfg)
./texsys.aux found


\@currdir set to: ./.


Assuming \openin and \input 
have the same search path.


Defining UNIX/DOS style filename parser.

catcodes, registers, parameters,
LaTeX2e <2018-12-01>
hacks, control, par, spacing, files, font encodings, lengths,
====================================

Local config file fonttext.cfg used

====================================
(/usr/share/texlive/texmf-dist/tex/latex/base/fonttext.cfg
(/usr/share/texlive/texmf-dist/tex/latex/base/fonttext.ltx
=== Don't modify this file, use a .cfg file instead ===

(/usr/share/texlive/texmf-dist/tex/latex/base/omlenc.def)
(/usr/share/texlive/texmf-dist/tex/latex/base/t1enc.def)
(/usr/share/texlive/texmf-dist/tex/latex/base/ot1enc.def)
(/usr/share/texlive/texmf-dist/tex/latex/base/omsenc.def)
(/usr/share/texlive/texmf-dist/tex/latex/base/t1cmr.fd)
(/usr/share/texlive/texmf-dist/tex/latex/base/ot1cmr.fd)
(/usr/share/texlive/texmf-dist/tex/latex/base/ot1cmss.fd)
(/usr/share/texlive/texmf-dist/tex/latex/base/ot1cmtt.fd)))
====================================

Local config file fontmath.cfg used

====================================
(/usr/share/texlive/texmf-dist/tex/latex/base/fontmath.cfg
(/usr/share/texlive/texmf-dist/tex/latex/base/fontmath.ltx
=== Don't modify this file, use a .cfg file instead ===

(/usr/share/texlive/texmf-dist/tex/latex/base/omlcmm.fd)
(/usr/share/texlive/texmf-dist/tex/latex/base/omscmsy.fd)
(/usr/share/texlive/texmf-dist/tex/latex/base/omxcmex.fd)
(/usr/share/texlive/texmf-dist/tex/latex/base/ucmr.fd)))
====================================

Local config file preload.cfg used

=====================================
(/usr/share/texlive/texmf-dist/tex/latex/base/preload.cfg
(/usr/share/texlive/texmf-dist/tex/latex/base/preload.ltx)) page nos., x-ref,
environments, center, verbatim, math definitions, boxes, title, sectioning,
contents, floats, footnotes, index, bibliography, output,
===========================================
Local configuration file hyphen.cfg used
===========================================
(/usr/share/texlive/texmf-dist/tex/generic/babel/hyphen.cfg
(/usr/share/texlive/texmf-dist/tex/generic/babel/switch.def)
(/usr/share/texlive/texmf-dist/tex/generic/hyphen/hyphen.tex)
(/usr/share/texlive/texmf-dist/tex/generic/hyphen/dumyhyph.tex)
(/usr/share/texlive/texmf-dist/tex/generic/hyphen/zerohyph.tex)
(/usr/share/texlive/texmf-dist/tex/generic/hyph-utf8/loadhyph/loadhyph-de-1901.
tex EC German hyphenation patterns (traditional orthography)
! I can't find file `dehypht.tex'.
l.29     \input dehypht.tex
                           
(Press Enter to retry, or Control-D to exit)
Please type another input file name: 
! Emergency stop.
l.29     \input dehypht.tex
                           
!  ==> Fatal error occurred, no output PDF file produced!
Transcript written on pdflatex.log.
mktexfmt [ERROR]: running `pdftex -ini   -jobname=pdflatex -progname=pdflatex -translate-file=cp227.tcx *pdflatex.ini >&2 </dev/null' return status 1
mktexfmt [ERROR]: return error due to options --strict
mktexfmt [INFO]: Not selected formats: 15
mktexfmt [INFO]: Failed to build: 1 (pdftex/pdflatex)
mktexfmt [INFO]: Total formats: 16
mktexfmt [INFO]: exiting with status 1
I can't find the format file `pdflatex.fmt'!

Comment 22 Tom "spot" Callaway 2020-06-18 18:45:39 UTC
Probably not the same bug, but lets see what we can figure out. Do you have texlive-dehyph installed?

Comment 23 Erik del Toro Streb 2020-06-18 18:54:39 UTC
No, sorry. I didn’t. I installed the package and now it works. But WHY wasn’t it installed as a dependency?

Well, I didn’t install pdflatex, just texlive-xetex and some other packages. I noticed the problem when I wanted to use pdfjam (texlive-pdfjam). Maybe this package installed pdflatex but not the required texlive-dehyph?

Comment 24 Tom "spot" Callaway 2020-06-18 20:05:19 UTC
texlive is a hot tangled mess of interdependent components. I have done a much better job of resolving deps in the texlive package in rawhide (f33), but at this point, it is unlikely that I'm going to try to go back and make changes to the stable Fedora branches.

I looked at tex/generic/hyph-utf8/loadhyph/loadhyph-de-1901.tex (from texlive-german) and there is a conditional case where it needs dehypht.tex, so I've added a forced Requires: texlive-dehyph to texlive-german in rawhide (f33).

This probably didn't get caught before because:

A) It only impacts German users
B) Unicode-aware engines (XeTeX/LuaTeX) do not use dehypht.tex

Thanks for helping me fix it!


Note You need to log in before you can comment on or make changes to this bug.