boinc/zip/unzip
Bruce Allen f31b244f90 Modified CVS id strings. After some fussing with different versions
of gcc to try and force them to not complain with -Wall but to always
include this, I decided to take a simpler approach.  All these strings
now have global linkage.  To prevent namespace conflicts they all
have different names.  For the record, the variable extension is a hash made of the first ten characters of the md5sum of the file path, eg:
    md5hash=`boinc/api/x_opengl.C | md5sum | cut -c 1-10`

svn path=/trunk/boinc/; revision=4979
2005-01-02 18:29:53 +00:00
..
macos Modified CVS id strings. After some fussing with different versions 2005-01-02 18:29:53 +00:00
unix Modified CVS id strings. After some fussing with different versions 2005-01-02 18:29:53 +00:00
win32 Modified CVS id strings. After some fussing with different versions 2005-01-02 18:29:53 +00:00
.cvsignore
BUGS
Contents
History.550
INSTALL
LICENSE
Makefile.am Fixed a few typos that slipped into Makefile.am (directory names such as unix/ not unix 2004-11-27 21:04:36 +00:00
README
ToDo
WHERE
api.c Modified CVS id strings. After some fussing with different versions 2005-01-02 18:29:53 +00:00
apihelp.c Modified CVS id strings. After some fussing with different versions 2005-01-02 18:29:53 +00:00
consts.h
crc32.c Modified CVS id strings. After some fussing with different versions 2005-01-02 18:29:53 +00:00
crc_i386.S
crctab.c Modified CVS id strings. After some fussing with different versions 2005-01-02 18:29:53 +00:00
crypt.c Modified CVS id strings. After some fussing with different versions 2005-01-02 18:29:53 +00:00
crypt.h
ebcdic.h
envargs.c Modified CVS id strings. After some fussing with different versions 2005-01-02 18:29:53 +00:00
explode.c Modified CVS id strings. After some fussing with different versions 2005-01-02 18:29:53 +00:00
extract.c Modified CVS id strings. After some fussing with different versions 2005-01-02 18:29:53 +00:00
file_id.diz
fileio.c Modified CVS id strings. After some fussing with different versions 2005-01-02 18:29:53 +00:00
funzip.c Modified CVS id strings. After some fussing with different versions 2005-01-02 18:29:53 +00:00
funzip.txt
gbloffs.c Modified CVS id strings. After some fussing with different versions 2005-01-02 18:29:53 +00:00
globals.c Modified CVS id strings. After some fussing with different versions 2005-01-02 18:29:53 +00:00
globals.h
inflate.c Modified CVS id strings. After some fussing with different versions 2005-01-02 18:29:53 +00:00
inflate.h
list.c Modified CVS id strings. After some fussing with different versions 2005-01-02 18:29:53 +00:00
match.c Modified CVS id strings. After some fussing with different versions 2005-01-02 18:29:53 +00:00
process.c Modified CVS id strings. After some fussing with different versions 2005-01-02 18:29:53 +00:00
tables.h
timezone.c Modified CVS id strings. After some fussing with different versions 2005-01-02 18:29:53 +00:00
timezone.h
ttyio.c Modified CVS id strings. After some fussing with different versions 2005-01-02 18:29:53 +00:00
ttyio.h
unreduce.c Modified CVS id strings. After some fussing with different versions 2005-01-02 18:29:53 +00:00
unshrink.c Modified CVS id strings. After some fussing with different versions 2005-01-02 18:29:53 +00:00
unzip.c Modified CVS id strings. After some fussing with different versions 2005-01-02 18:29:53 +00:00
unzip.h
unzip.txt
unzipsfx.txt
unzipstb.c Modified CVS id strings. After some fussing with different versions 2005-01-02 18:29:53 +00:00
unzpriv.h
unzvers.h
zip.h
zipgrep.txt
zipinfo.c Modified CVS id strings. After some fussing with different versions 2005-01-02 18:29:53 +00:00
zipinfo.txt

README

This is the README file for the 17 February 2002 public release of the
Info-ZIP group's portable UnZip zipfile-extraction program (and related
utilities).

unzip550.zip       portable UnZip, version 5.5, source code distribution
unzip550.tar.Z     same as above, but compress'd tar format
unzip550.tar.gz    same as above, but gzip'd tar format

__________________________________________________________________________

BEFORE YOU ASK:  UnZip, its companion utility Zip, and related utilities
and support files can be found in many places; read the file "WHERE" for
further details.  To contact the authors with suggestions, bug reports,
or fixes, continue reading this file (README) and, if this is part of a
source distribution, the file "ZipPorts" in the proginfo directory.  Also
in source distributions:  read "BUGS" for a list of known bugs, non-bugs
and possible future bugs; INSTALL for instructions on how to build UnZip;
and "Contents" for a commented listing of all the distributed files.
__________________________________________________________________________


GENERAL INFO
------------
UnZip is an extraction utility for archives compressed in .zip format (also
called "zipfiles").  Although highly compatible both with PKWARE's PKZIP
and PKUNZIP utilities for MS-DOS and with Info-ZIP's own Zip program, our
primary objectives have been portability and non-MSDOS functionality.

This version of UnZip has been ported to a stupendous array of hardware--
from micros to supercomputers--and operating systems:  Unix (many flavors),
VMS, OS/2 (including DLL version), Windows NT and Windows 95 (including DLL
version), Windows CE (GUI version), Windows 3.x (including DLL version),
MS-DOS, AmigaDOS, Atari TOS, Acorn RISC OS, BeOS, Macintosh (GUI version),
SMS/QDOS, MVS, VM/CMS, FlexOS, Tandem NSK, Human68k (mostly), AOS/VS (partly)
and TOPS-20 (partly).  UnZip features not found in PKUNZIP include source
code; default extraction of directory trees (with a switch to defeat this,
rather than the reverse); system-specific extended file attributes; and, of
course, the ability to run under most of your favorite operating systems.
Plus, it's free. :-)

For source distributions, see the main Contents file for a list of what's
included, and read INSTALL for instructions on compiling (including OS-
specific comments).  The individual operating systems' Contents files (for
example, vms/Contents) may list important compilation info in addition to
explaining what files are what, so be sure to read them.  Some of the ports
have their own, special README files, so be sure to look for those, too.

See unzip.1 or unzip.txt for usage (or the corresponding UnZipSFX, ZipInfo,
fUnZip and ZipGrep docs).  For VMS, unzip_def.rnh or unzip_cli.help may be
compiled into unzip.hlp and installed as a normal VMS help entry; see
vms/descrip.mms.


CHANGES AND NEW FEATURES
------------------------
The main addition in the 5.5 release is support for PKWARE's new Deflate64(tm)
algorithm, which appeared first in PKZIP 4.0 (published November 2000).
As usual, some other bugfixes and clean-ups have been integrated:

   - support for Deflate64 (Zip compression method #9)
   - support for extracting VMS variable length record text files on
     any system
   - optional "cheap autorun" feature for the SFX stub
   - security fixes:
     * strip leading slash from stored pathspecs,
     * remove "../" parent dir path components from extracted file names
   - new option "-:" to allow verbatim extraction of file names containing
     "../" parent dir path specs
   - fixed file handle leak for the DLL code
   - repaired OS2 & WinNT ACL extraction which was broken in 5.42

The 5.42 maintance release fixes more bugs and cleans up the redistribution
conditions:

   - removal of unreduce.c and amiga/timelib.c code to get rid of the last
     distribution restrictions beyond the BSD-like Info-ZIP LICENSE
   - new generic timelib replacement (currently used by AMIGA port)
   - more reasonable mapping rules of UNIX "leading-dot" filenames to the
     DOS 8.3 name convention
   - repaired screensize detection in MORE paging code
     (was broken for DOS/OS2/WIN32 in 5.41)

The 5.41 maintance release adds another new port and fixes some bugs.

   - new BSD-like LICENSE
   - new Novell Netware NLM port
   - supports extraction of archives with more than 64k entries
   - attribute handling of VMS port was broken in UnZip 5.4
   - decryption support integrated in the main source distribution

The 5.4 release adds new ports, again. Other important items are changes
to the listing format, new supplemental features and several bug fixes
(especially concerning time-stamp handling...):

   - new IBM OS/390 port, a UNIX derivate (POSIX with EBCDIC charset)
   - complete revision of the MacOS port
   - changed listing formats to enlarge the file size fields for more digits
   - added capability to restore directory attributes on MSDOS, OS/2, WIN32
   - enabled support of symbolic links on BeOS
   - Unix: optional Acorn filetype support, useful for volumes exported via NFS
   - several changes/additions to the DLL API
   - GUI SFX stub for Win16 (Windows 3.1) and Win32 (Windows 9x, Windows NT)
   - new free GCC compiler environments supported on WIN32
   - many time-zone handling bug fixes for WIN32, AMIGA, ...

The 5.32 release adds two new ports and a fix for at least one relatively
serious bug:

   - new FlexOS port
   - new Tandem NSK port
   - new Visual BASIC support (compatibility with the Windows DLLs)
   - new -T option (set zipfile timestamp) for virtually all ports
   - fix for timestamps beyond 2038 (e.g., 2097; crashed under DOS/Win95/NT)
   - fix for undetected "dangling" symbolic links (i.e., no pointee)
   - fix for VMS indexed-file extraction problem (stored with Zip 2.0 or 2.1)
   - further performance optimizations

The 5.31 release included nothing but small bug-fixes and typo corrections,
with the exception of some minor performance tweaks.

The 5.3 release added still more ports and more cross-platform portability
features:

   - new BeOS port
   - new SMS/QDOS port
   - new Windows CE graphical port
   - VM/CMS port fully updated and tested
   - MVS port fully updated and tested
   - updated Windows DLL port, with WiZ GUI spun off to a separate package
   - full Universal Time (UTC or GMT) support for trans-timezone consistency
   - cross-platform support for 8-bit characters (ISO Latin-1, OEM code pages)
   - support for NT security descriptors (ACLs)
   - support for overwriting OS/2 directory EAs if -o option given
   - updated Solaris/SVR4 package facility

What is (still!) not added is multi-part archive support (a.k.a. "diskette
spanning") and a unified and more powerful DLL interface.  These are the
two highest priorities for the 6.x releases.  Work on the former is almost
certain to have commenced by the time you read this.  This time we mean it!
You betcha. :-)

Although the DLLs are still basically a mess, the Windows DLLs (16- and 32-
bit) now have some documentation and a small example application.  Note that
they should now be compatible with C/C++, Visual BASIC and Delphi.  Weirder
languages (FoxBase, etc.) are probably Right Out.

Finally, note that support for unshrinking has now been turned OFF by default,
although the source code is still available (as with unreducing).  This was
done for legal reasons, not technical ones, and no, we're not any happier
about it than you are. :-(  See the COPYING file for details.


INTERNET RESOURCES
------------------

Info-ZIP's web site is at http://www.info-zip.org/pub/infozip/
and contains the most up-to-date information about coming releases,
links to binaries, and common problems.
(See http://www.info-zip.org/pub/infozip/FAQ.html for the latter.)
Files may also be retrieved via ftp://ftp.info-zip.org/pub/infozip/ .
Thanks to Walnut Creek CD-ROM for hosting our primary site.


DISTRIBUTION
------------
If you have a question regarding redistribution of Info-ZIP software, either
as is, as packaging for a commercial product, or as an integral part of a
commercial product, please read the Frequently Asked Questions (FAQ) section
of the included COPYING file.

Insofar as C compilers are rare on some platforms and the authors only have
direct access to a subset of the supported systems, others may wish to pro-
vide ready-to-run executables for new systems.  In general there is no prob-
lem with this; we require only that such distributions include this README
file, the WHERE file, the COPYING file (contains copyright/redistribution
information), and the appropriate documentation files (unzip.txt and/or
unzip.1 for UnZip, etc.).  If the local system provides a way to make self-
extracting archives in which both the executables and text files can be
stored together, that's best (in particular, use UnZipSFX if at all possible,
even if it's a few kilobytes bigger than the alternatives); otherwise we
suggest a bare UnZip executable and a separate zipfile containing the re-
maining text and binary files.  If another archiving method is in common
use on the target system (for example, Zoo or LHa), that may also be used.


BUGS AND NEW PORTS:  CONTACTING INFO-ZIP
----------------------------------------
All bug reports and patches (context diffs only, please!) should go to
Zip-Bugs@lists.wku.edu, which is the e-mail address for the Info-ZIP
authors.  (Note that a few rare systems require the Zip-Bugs part to be
capitalized as shown; most systems work OK with lowercase "zip-bugs,"
however.)  DO NOT MAIL US LARGE BINARIES--EVER.  If you need to send us
a problem archive that happens to be large (> 20K), contact us first for
instructions.

"Dumb questions" that aren't adequately answered in the documentation
should also be directed to Zip-Bugs rather than to a global forum such
as Usenet.  (Kindly make certain that your question *isn't* answered by
the documentation, however--a great deal of effort has gone into making
it clear and complete.)

Suggestions for new features can be discussed on Info-ZIP@lists.wku.edu,
a mailing list for Info-ZIP beta testers and interested parties; you need
to subscribe first, however (see below).  We make no promises to act on all
suggestions or even all patches, but if it is something that is manifestly
useful, sending the required patches to Zip-Bugs directly (as per the
instructions in the ZipPorts file) is likely to produce a quicker response
than asking us to do it--the authors are always ridiculously short on time.
(Please do NOT send patches or encoded zipfiles to the Info-ZIP list.
Please DO read the ZipPorts file before sending any large patch.  It would
be difficult to over-emphasize this point...)

If you are considering a port, not only should you read the ZipPorts file,
but also please check in with Zip-Bugs BEFORE getting started, since the
code is constantly being updated behind the scenes.  (For example, VxWorks,
VMOS and Netware ports were once claimed to be under construction, although
we have yet to see any up-to-date patches.)  We will arrange to send you the
latest sources.  The alternative is the possibility that your hard work will
be tucked away in a subdirectory and mostly ignored, or completely ignored
if someone else has already done the port (and you'd be surprised how often
this has happened).


BETA TESTING:  JOINING INFO-ZIP
-------------------------------
If you'd like to keep up to date with our UnZip (and companion Zip utility)
development, join the ranks of beta testers, add your own thoughts and con-
tributions, or simply lurk, send a two-line mail message containing the
commands HELP and LIST (on separate lines in the body of the message, not
on the subject line) to mxserver@lists.wku.edu.  You'll receive two messages
listing the various Info-ZIP mailing-list formats that are available (and
also various unrelated lists) and instructions on how to subscribe to one
or more of them (courtesy of Hunter Goatley).  As of 1997, subscribing to
the announcements list required a command of the form

        SUBSCRIBE Info-ZIP-announce "Joe Isuzu"

The discussion list is called Info-ZIP; it can be set for either normal or
digest-style delivery.


-- Greg Roelofs (sometimes known as Cave Newt), principal UnZip developer
   guy, with inspiration from David Kirschbaum, was Author of this text.

-- Christian Spieler (shorthand: SPC), current UnZip maintance coordinator,
   applied the most recent changes.