[tex-live] Can't spawn "cmd.exe": No such file or directory at F:/TeXLive/2008/tlpkg/TeXLive/TLUtils.pm line 459.

T T t34www at googlemail.com
Wed Dec 24 11:10:26 CET 2008

2008/12/24 Dan Luecking <luecking at uark.edu>:
> Karl:
> I get this error only when there are a huge number of files going
> into the backup file. The error message is always accompanied by
> screen after screen of filenames. I think this might be due to
> running tar with all the files listed on the command line. This
> might result in buffer overflow and throw Windows into confusion.
> The definition of make_container has the following comments
> (TLPOBJ.pm):
>  # Get list of files.  We have to pass them all on the command line,
>  # because there is no portable way to pass them on stdin.  This can be
>  # a lengthy command line, but modern systems have enough argv space.
>  # our biggest package is tex4ht, which needs about 200k.
> tar allows one to pass the list of files in an external file
> (--files-from or -T). If the too-long list is the problem, that
> would be a way to work around it.
> The command line limit for cmd.exe is variously given as 8K characters
> (on an interactive command line, before expansion) 16K (after expansion
> or if cmd.exe is used non-interactively). There are other claimed
> limits, the largest I ran across was 32K. The list of venturisadf files
> is about 43K.

That could be the cause, indeed. There is a hard limit for command
line size of 32K. This is the maximum size that CreateProcess API can
accept. But there are others as well: 2K if you use ShellExecute API,
8K for cmd.exe on XP (2K on win2000).


What I don't understand is why the error says cmd.exe when the call
out is made to tar.exe? Does 'system' function in Perl automatically
adds cmd.exe at the beginning or what? I would expect that this is a
wrapper around CreateProcess API.

Anyway, it should be easy to test if this is what causes the problems.



More information about the tex-live mailing list