[tex-live] No unzip in texlive/2008/bin/win32/

Reinhard Kotucha reinhard.kotucha at web.de
Wed Dec 31 01:56:35 CET 2008

Philip TAYLOR (Ret'd) writes:
 > George N. White III wrote:
 > > getnonfreefonts is a cross-platform script and expects a command-line
 > > unzip(.exe on WIn32) that supports certain options.   WinZip has a
 > > command-line addon but the options aren't compatible with those of
 > > the open source unzip.  Is there a command-line interface for Windows
 > > Explorer.
 > The documented options are here :
 > 	http://support.microsoft.com/kb/314853
 > but none suggests that ZIP-unpacking can be
 > accomplished from the command-line without
 > requiring further (Windows-style) interaction
 > with the user :-(  The nearest I can find is
 > 	rundll32.exe zipfldr.dll,RouteTheCall Install-TL.zip
 > but that still requires the user to instruct
 > Explorer to extract the files using the Windows
 > GUI interface ...

getnonfreefonts depends on unzip.exe because it's too difficult to
support two different programs.  Of course, it would be nice if
software provided by the operating system can be used.  But most of
the zip files are not TDS compliant.  The old shell script extracted
the zip files in a temporary directory and then copied the extracted
files to the texmf tree.  A signal handler made sure that all
temporary files are removed when the program aborts before it's

The current version is written in Perl and supports Windows too.
Though it supports all the signals mentioned in the MS C runtime
library, almost none of them can be caught[1].  In order to avoid to
leave too many files in the temporary directory if the program aborts
unexpectedly, the program now extracts single files directly to the
destination directory, at least if the (non TDS compliant) zip file
cannot be extracted directly in a texmf tree.

This means that some advanced options of unzip are used.  A particular
zip file is not simply extracted "as is".

Files which are not TDS compliant always cause a lot of extra work.
Even if Microsoft would provide such a tool which doesn't depend on
the GUI, it would be a lot of work to support it if it doesn't have
the same options as unzip.exe and behaves exactly the same way.  

unzip.exe and wget.exe are very helpful when writing portable scripts.
Without them I doubt that the script would support Windows today at
all.  The fact that Windows isn't POSIX compliant makes it quite
difficult to write portable scripts.  However, getnonfreefonts is just
a wrapper and the real work is done by the script it downloads and
executes, currently called 'getfont2008'.  This script is completely
platform independent (thanks to unzip.exe and wget.exe), otherwise it
wouldn't be maintainable.

However, whenever Microsoft provides tools which can be run from a
script, let me know.


[1] AFAIK the signal handler is executed on Windows if you press ^C.

Reinhard Kotucha			              Phone: +49-511-3373112
Marschnerstr. 25
D-30167 Hannover	                      mailto:reinhard.kotucha at web.de
Microsoft isn't the answer. Microsoft is the question, and the answer is NO.

More information about the tex-live mailing list