123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348 |
- This is the README file for the 20 April 2009 public release of the
- Info-ZIP group's portable UnZip zipfile-extraction program (and related
- utilities).
- unzip60.zip portable UnZip, version 6.0, source code distribution
- unzip60.tar.Z same as above, but compress'd tar format
- unzip60.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
- ------------------------
- UnZip 6.0 finally supports nowadays "large" files of sizes > 2 GiB!
- This is the first release containing support for the PKWARE Zip64
- enhancements.
- Major changes are:
- - Support PKWARE ZIP64 extensions, allowing Zip archives and Zip archive
- entries larger than 4 GiBytes and more than 65536 entries within a single
- Zip archive. This support is currently only available for Unix,
- OpenVMS and Win32/Win64.
- - Support for bzip2 compression method.
- - Support for UTF-8 encoded entry names, both through PKWARE's "General
- Purpose Flags Bit 11" indicator and Info-ZIP's new "up" unicode path
- extra field. (Currently, on Windows the UTF-8 handling is limited to
- the character subset contained in the configured non-unicode "system
- code page".)
- - Added "wrong implementation used" warning to error messages of the MSDOS
- port when used under Win32, in an attempt to reduce false bug reports.
- - Fixed "Time of Creation/Time of Use" vulnerability when setting attributes
- of extracted files, for Unix and Unix-like ports.
- - Fixed memory leak when processing invalid deflated data.
- - Fixed long-standing bug in unshrink (partial_clear), added boundary checks
- against invalid compressed data.
- - On Unix, keep inherited SGID attribute bit for extracted directories
- unless restoration of owner/group id or SUID/SGID/Tacky attributes was
- requested.
- - On Unix, allow extracted filenames to contain embedded control characters
- when explicitly requested by specifying the new command line option "-^".
- - On Unix, support restoration of symbolic link attributes.
- - On Unix, support restoration of 32-bit UID/GID data using the new "ux"
- IZUNIX3 extra field introduced with Zip 3.0.
- - Support for ODS5 extended filename syntax on new OpenVMS systems.
- - Support symbolic links zipped up on VMS.
- - On VMS (only 8.x or better), support symbolic link creation.
- - On VMS, support option to create converted text files in Stream_LF format.
- - New -D option to suppress restoration of timestamps for extracted
- directory entries (on those ports that support setting of directory
- timestamps). By specifying "-DD", this new option also allows to suppress
- timestamp restoration for ALL extracted files on all UnZip ports which
- support restoration of timestamps.
- On VMS, the default behaviour is now to skip restoration of directory
- timestamps; here, "--D" restores ALL timestamps, "-D" restores none.
- - On OS/2, Win32, and Unix, the (previously optional) feature UNIXBACKUP
- to allow saving backup copies of overwritten files on extraction is now
- enabled by default.
- For the UnZip 6.0 release, we want to give special credit to Myles Bennet,
- who started the job of supporting ZIP64 extensions and Large-File (> 2GiB)
- and provided a first (alpha-state) port.
- The 5.52 maintenance release fixes a few minor problems found in the 5.51
- release, closes some more security holes, adds a new AtheOS port, and
- contains a Win32 extra-field code cleanup that was not finished earlier.
- The most important changes are:
- - (re)enabled unshrinking support by default, the LZW patents have expired
- - fixed an extraction size bug for encrypted stored entries (12 excess bytes
- were written with 5.51)
- - fixed false "uncompressed size mismatch" messages when extracting
- encrypted archive entries
- - do not restore SUID/SGID/Tacky attribute bits on Unix (BeOS, AtheOS)
- unless explicitely requested by new "-K" command line qualifier
- - optional support for "-W" qualifier to modify the pattern matching syntax
- (with -W: "*" stops at directory delimiter, "**" matches unlimited)
- - prevent buffer overflow caused by bogus extra-long Zipfile specification
- - performance enhancements for VMS port
- - fixed windll interface handling of its extraction mode qualifiers
- nfflag, ExtractOnlyNewer, noflag, PromptToOverwrite; added detailed
- explanation of their meanings and interactions to the windll documentation
- The 5.51 maintenance release adds a command-line CE port, intended for
- batch processing. With the integration of this port, the pUnZip port
- has been revised and "revitalized".
- The most important changes for the general public are a number of
- bug fixes, mostly related to security issues:
- - repair a serious bug in the textmode output conversion code for the 16-bit
- ports (16-bit MSDOS, OS/2 1.x, some variants of AMIGA, possibly others)
- which was introduced by the Deflate64 support of release 5.5
- - fix a long standing bug in the the inflate decompression method that
- prevented correct extraction in some rare cases
- - fixed holes in parent dir traversal security code (e.g.: ".^C." slipped
- through the previous version of the check code)
- - fixed security hole: check naming consistency in local and central header
- - fixed security hole: prevent extracted symlinks from redirecting file
- extraction paths
- 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 maintenance 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 maintenance 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", though we really mean archive splitting and not the old 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.
- 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 LEO (Munich, Germany) for previously 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. All Info-ZIP releases are now covered by
- the Info-ZIP license. See the file LICENSE. The most current license
- should be available at http://www.info-zip.org/license.html and
- ftp://ftp.info-zip.org/pub/infozip/license.html.
- 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 LICENSE 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 be
- submitted either through the new Info-ZIP Discussion Forum at
- http://www.info-zip.org/board/board.pl or through the Info-ZIP SourceForge
- site at http://sourceforge.net/projects/infozip/. The forum allows file
- attachments while SourceForge provides a place to post patches. The old
- Zip-Bugs@lists.wku.edu e-mail address for the Info-ZIP authors was
- discontinued after heavy continuous spam, as was the QuickTopic discussion
- forum. The above methods are public, but we also can be reached directly
- using the web reply page at http://www.info-zip.org/zip-bug.html. If you
- need to send us files privately, 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 the new Discussion Forum.
- A new mailing list for Info-ZIP beta testers and interested parties may
- be created someday, but for now any issues found in the betas should use
- the forum. 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
- contributions, or simply lurk, you may join one of our mailing lists.
- There is an announcements-only list (Info-ZIP-announce) and a general
- discussion/testing list (Info-ZIP). You must be a subscriber to post, and
- you can subscribe via the links on our Frequently Asked Questions page:
- http://www.info-zip.org/pub/infozip/FAQ.html#lists
- (Please note that as of late May 2004, the lists are unavailable pending
- a move to a new site; we hope to have them restored shortly. In the
- interim ...) Feel free to use our bug-reporting web page for bug reports
- and to ask questions not answered on the FAQ page above:
- http://www.info-zip.org/zip-bug.html
- For now the best option is to monitor and contribute to the various threads
- on the new discussion forum site at:
- http://www.info-zip.org/board/board.pl
- The second best way to contribute is through the various features at
- SourceForge, such as the bug posting areas.
- There is also a closed mailing list for internal discussions of our core
- development team. This list is now kept secret to prevent us from being
- flooded with spam messages.
- -- 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 maintenance coordinator,
- applied the most recent changes, with Ed Gordon providing a few additions.
|