Home | Docs | Forums | Lists | Bugs | Planet | Store | GMN | Get Gentoo!
Not eligible to see or edit group visibility for this bug.
View Bug Activity | Format For Printing | XML | Clone This Bug
When you run texmf-update either by some package calling it part of the installation or by hand; it corrupts multiple files. A couple being fmtutil.cnf and texmf.cnf; and others that I haven't found directly yet. Once it is ran; it recreates the fmtutil.cnf file; but doesn't put anything in it. So if you try to run any thing that depends on that file; it will fail to work every time alone. Like fmtutil will not see the file. On the texmf.cnf; it recreates it but without all of the needed variable settings; so fmtutil will not work either from that. This problem more likly also includes tetex-3.0_p1 also; as the r1 ebuild only contains 2 patches; one correcting some of the issues from tetex-3.0_p1. Steps to reproduce: 1. Emerge =tetex-3.0_p1-r1 2. ls -l /etc/texmf/web2c (to see the before results) 3. texmf-update 4. ls -l /etc/texmf/web2c (to see the final results) Portage 2.1_pre3-r1 (default-linux/amd64/2006.0, gcc-3.4.5, glibc-2.3.6-r2, 2.6.14-gentoo-r5 x86_64) ================================================================= System uname: 2.6.14-gentoo-r5 x86_64 AMD Athlon(tm) 64 Processor 3200+ Gentoo Base System version 1.12.0_pre15 dev-lang/python: 2.3.5-r2, 2.4.2 sys-apps/sandbox: 1.2.17 sys-devel/autoconf: 2.13, 2.59-r7 sys-devel/automake: 1.4_p6, 1.5, 1.6.3, 1.7.9-r1, 1.8.5-r3, 1.9.6-r1 sys-devel/binutils: 2.16.1-r1 sys-devel/libtool: 1.5.22 virtual/os-headers: 2.6.11-r3 ACCEPT_KEYWORDS="amd64 ~amd64" AUTOCLEAN="yes" CBUILD="x86_64-pc-linux-gnu" CFLAGS="-O3 -pipe -march=k8" CHOST="x86_64-pc-linux-gnu" CONFIG_PROTECT="/etc /usr/kde/2/share/config /usr/kde/3.4/env /usr/kde/3.4/share/config /usr/kde/3.4/shutdown /usr/kde/3/share/config /usr/lib/X11/xkb /usr/share/config /var/qmail/control" CONFIG_PROTECT_MASK="/etc/gconf /etc/terminfo /etc/texmf/web2c /etc/env.d" CXXFLAGS="-O3 -pipe -march=k8" DISTDIR="/usr/portage/distfiles" FEATURES="autoconfig distlocks sandbox sfperms strict" GENTOO_MIRRORS="ftp://gentoo.chem.wisc.edu/gentoo/" MAKEOPTS="-j2" PKGDIR="/usr/portage/packages" PORTAGE_TMPDIR="/var/tmp" PORTDIR="/usr/portage" SYNC="rsync://rsync.us.gentoo.org/gentoo-portage" USE="amd64 X a52 alsa apache2 audiofile avi bash-completion berkdb bitmap-fonts bzip2 cairo cdb cdr crypt cups doc dvd dvi dynagraph eds emboss encode erandom esd examples exif expat extensions fam firefox flac foomaticdb fortran fpx gd gdbm gif glitz glut gnome gnutls gpm graphvix graphviz gstreamer gtk gtk2 gtkhtml hal idn imagemagick imlib java javascript jpeg jpeg2k kde kerberos krb4 lcms libedit libwww linuxthreads-tls logmail logrotate lzw lzw-tiff mad maildir mailwrapper mng motif mozilla mp3 mpeg mysql ncurses nls nptl nsplugin ogg opengl pam pam_chroot pam_console pam_timestamp pcre pdflib perl php png pwdb python qt quicktime readline sasl sdk sdl snmp spell sql ssl svg symlink t1lib tcltk tcpd tetex theora threads tidy tiff toolbar truetype truetype-fonts type1-fonts udev urandom usb userlocales vorbis wmf xml xml2 xpm xv zlib elibc_glibc kernel_linux userland_GNU" Unset: ASFLAGS, CTARGET, LANG, LC_ALL, LDFLAGS, LINGUAS, PORTDIR_OVERLAY
Created an attachment (id=78271) [edit] after results of fmtutil.cnf Here is a copy of 2 of the cnf files of before running the command and afterwards; both residing in /etc/texmf/web2c
Created an attachment (id=78272) [edit] The before results of a working copy of tetex
Created an attachment (id=78273) [edit] before results of a working copy of tetex - texmf.cnf
Created an attachment (id=78275) [edit] the afterwards results from running texmf-update - texmf.cnf
Well; after going through and figuring out what the texmf-update file actualy does; I think I figured out what is wrong; and causing the texmf.cnf and fmtutil.cnf to get corrupted. In both directories fmtutil.d and texmf.d; contains a symlink to web2c of it's correlating file, which is the cause of the problem. To fix the problem; you have to do a hard link, to the files or copy them from the web2c folder to their respectful .d directory. For the most part; this should be fairly easy to fix in the ebuild; which I will allow someone else make a new ebuild with the modification(s).
I've been thinking though how the texmf-update script works; and for some reason it wasn't adding up as to why you would have a file linked to there, reguardless of being hard link or symbolic linked. From my understanding of how that script works; it works just like how env-update does with env.d. The primary part that is the focus is lines 8 through 15. What thoose lines does is; it combines all of the files in the .d directory and puts them in the web2c directory. The problem comes is; when you link a file to that directory. It should cat that file along with any other files and put it in the web2c directory; which in this case is linked back to it's respectful .d directory. So we come up with an issue if we do a hard link over a symbolic link; then run texmf-update; the file will just keep growing every time you run it, even though you never made any changes to the files in .d directory. The solution comes where; we have to make a copy of original tetex file and put it in it's respectful directory. If I get around to it; I will see if I can't modify the ebuild to do it the proper way; including throw in a small notice for people; to change the file in the .d directory not the web2c directory so their changes are kept.
I have also found much the same problems as Chris, so there is definitely something wrong here. The problem originated when I upgraded from tetex-3.0-r4 to tetex-3.0_p1-r1. I downgraded to tetex-3.0-r4 but it persisted. I then removed the package altogether, and the /etc/texmf directory, and reinstalled. I did this clean install for both packages, and it did not work in either case. I eventually solved it by copying the texmf.in file out of the source package and applying the Gentoo patch by hand, then placing it in the /etc/texmf/texmf.d directory, and running texmf-update. But there is still strange symlink nonsense going on, and I'm not sure what.
Hi ppl. It's my first post here, so sory if I don't do it in the right way. I guess the problem is in the /usr/sbin/texmf-update script OR in the package instalation itself. The problem I see is that inside the script texmf-update, the lines ------------ for conf in texmf.cnf fmtutil.cnf updmap.cfg do if [ -d "/etc/texmf/${conf/.*/.d}" ] then echo "Generating /etc/texmf/web2c/${conf} from /etc/texmf/${conf/.*/.d} ..." cat /etc/texmf/${conf/.*/.d}/* > "/etc/texmf/web2c/${conf}" fi done ------------- do a cat from a symlink to the file itself [cat /etc/texmf/${conf/.*/.d}/* > "/etc/texmf/web2c/${conf}"] and this make the file corrupt, I guess. After a clean install of tetex, all the files that the script checks the existence are symlinks to files inside the /etc/texmf/web2c/ dir. When we run the script, it cats a symlink of each file to the file itself. So I think 2 possible errors: 1) The files /etc/texmf/texmf.d/00texmf.cnf -> /etc/texmf/web2c/texmf.cnf /etc/texmf/fmtutil.d/00fmtutil.cnf -> /etc/texmf/web2c/fmtutil.cnf /etc/texmf/updmap.d/00updmap.cfg -> /usr/share/texmf/web2c/updmap.cfg should not be symlinks OR 2) the script is not needed, because the chances to the symlinks is already changing the confif files themselfs. Well, I don't know about tetex instalation. It's the first time I'm using latex, but here the problem seems to be just like I described.I don't know why the script is needed and neither what it should do, but it's doing it wrong because the symlinks. I guess the code: ---------- for conf in texmf.cnf fmtutil.cnf updmap.cfg do if [ -d "/etc/texmf/${conf/.*/.d}" ] then echo "Generating /etc/texmf/web2c/${conf} from /etc/texmf/${conf/.*/.d} ..." cat /etc/texmf/${conf/.*/.d}/* > "/etc/texmf/web2c/${conf}" fi done ------------ is not necessary. And I guess the line #24 does not do anything at all. the command does not exist (texconfig-sys font options varfonts). I hope I've helped you to solve this problem. []'s Glauber
I hope I have fixed the problem. Could you please try the following: emerge sync rm -rf /etc/texmf emerge tetex texmf-update Then I hope all your problems (at least TeX wise) have gone away :-) Please report back if this fixes your problems.
well for the most part that fixed this problem; though just a small comment you may want to have the ebuild execute the texmf-update post install or something otherwise people will not know why their tetex doesn't work. As last time I went through the files; the other scripts checks in the web2c folder, not the .d directories. Well, now that this problem is fixed; I can redo my fixes; for the other problems in this version of tetex (see bug 97668 for the other problems; topic says it's in jadetex; but bug resides in the tetex package not jadetex).
(In reply to comment #9) > I hope I have fixed the problem. Could you please try the following: > > emerge sync > rm -rf /etc/texmf > emerge tetex > texmf-update > > Then I hope all your problems (at least TeX wise) have gone away :-) > Please report back if this fixes your problems. It works now, but I had to remove all the texmf dirs inside my box and re-emerge tetex. thanks =)
This now works for me; I did an emerge -C tetex, removed /etc/texmf, then emerge tetex. I haven't tested upgrading from an existing installation.
It doesn't seem to fix an existing corrupted installation (ones where stuff in /etc/texmf/*.d are symlinks to the files they should be creating). This is solved by "rm -r /etc/texmf" and re-emerging.
The texmf-update script also uses the current umask, but it should probably explicitly set the permissions on /etc/texmf/web2c/* (they were set to 0600 on my system after running texmf-update; I had to change it to 0644 before tetex started to work).
Try to resync and upgrade to tetex-3.0_p1-r2 as usual (without doing anything else), and report back if that fixes the problem(s).
Btw. if you have altered roots umask you are on your own. texmf-update gets 0755 permissions in the ebuild and if you have altered roots umask so it gets permisson different from that, then it is your problem to pick up the pieces (see bug #121811).
after checking tetex upgrading from several of the older verssions; haven't seen any issues. So I guess we can go ahead and mark it fixed, unless someone else has a problem.
Since it is fixed for the reporter, i'm going to mark this as fixed. If it is not fixed for all of you, please reopen the bug. Thank you all who helped debugging this issue!
*** Bug 97668 has been marked as a duplicate of this bug. ***
Hi all, Unfortunately, I tried the rm -rf /etc/texmf, re-emerge tetex, and texmf-update that was recommended and still have the problem. It's still giving me the same error: This is TeX, Version 3.141592 (Web2C 7.5.5) kpathsea: Running mktexfmt latex.fmt tcfmgr: config file `tcfmgr.map' (usually in $TEXMFMAIN/texconfig) not found. fmtutil: config file `fmtutil.cnf' not found. I can't find the format file `latex.fmt'! and I should note that $TEXMFMAIN is set equal to /var/lib/texmf What's going on here? I'm a bit frustrated right now. Best, Alex
Which version of tetex did you try? Was it 3.0_p1-r3?
Hi, Yes, it was version 3.0_p1-r3. Best, Alex