[tex-live] TexLive 20070128 doesn't work well under Win32

Vladimir Volovich vvv at vsu.ru
Fri Feb 2 17:16:53 CET 2007


"DK" == David Kastrup writes:

 >> on a case-insensitive filesystems, a search for "ls-R" should
 >> always find the file, even if it is named "ls-r", right?

 DK> Only if the search is case-insensitive.  This will be the case
 DK> when an actual attempt is made to open the file, but not
 DK> necessarily so when the information about the presence of the
 DK> file is derived in some other manner, like listing a directory.

in case of the "ls-R" file, its presence is tested by attempting to
access the file, thus it should work on both case-insensitive and
case-sensitive filesystems if the access is made to "ls-R" (the latter
is created by mktexlsr).

$ strace kpsewhich plain.tex 2>&1 | grep -i ls-r
access("/home/vvv/texmf/ls-R", R_OK)    = 0
stat64("/home/vvv/texmf/ls-R", {st_mode=S_IFREG|0644, st_size=9849, ...}) = 0
access("/home/vvv/texmf/ls-r", R_OK)    = -1 ENOENT (No such file or directory)
access("/var/lib/texmf/ls-R", R_OK)     = 0
stat64("/var/lib/texmf/ls-R", {st_mode=S_IFREG|0644, st_size=776, ...}) = 0
access("/var/lib/texmf/ls-r", R_OK)     = -1 ENOENT (No such file or directory)
access("/usr/share/texmf/ls-R", R_OK)   = 0
stat64("/usr/share/texmf/ls-R", {st_mode=S_IFREG|0644, st_size=24758, ...}) = 0
access("/usr/share/texmf/ls-r", R_OK)   = -1 ENOENT (No such file or directory)
access("/usr/share/texmf-texlive/ls-R", R_OK) = 0
stat64("/usr/share/texmf-texlive/ls-R", {st_mode=S_IFREG|0644, st_size=321347, ...}) = 0
access("/usr/share/texmf-texlive/ls-r", R_OK) = -1 ENOENT (No such file or directory)
open("/home/vvv/texmf/ls-R", O_RDONLY)  = 3
read(3, "% ls-R -- filename database for "..., 8192) = 8192
open("/var/lib/texmf/ls-R", O_RDONLY)   = 3
read(3, "% ls-R -- filename database for "..., 8192) = 776
open("/usr/share/texmf/ls-R", O_RDONLY) = 3
read(3, "% ls-R -- filename database for "..., 8192) = 8192
open("/usr/share/texmf-texlive/ls-R", O_RDONLY) = 3
read(3, "% ls-R -- filename database for "..., 8192) = 8192

i see that even on unix systems it wastes time trying to look for
"ls-r" which doesn't make sense.

what should happen is it should look only for "ls-R" on all platforms,
and "mktexlsr" should always create "ls-R" (and remove "ls-[Rr]"
before that).

Best,
v.


More information about the tex-live mailing list