Subversion Repositories Kolibri OS

Rev

Blame | Last modification | View Log | Download | RSS feed

  1. This is the README file for the 20 April 2009 public release of the
  2. Info-ZIP group's portable UnZip zipfile-extraction program (and related
  3. utilities).
  4.  
  5. unzip60.zip       portable UnZip, version 6.0, source code distribution
  6. unzip60.tar.Z     same as above, but compress'd tar format
  7. unzip60.tar.gz    same as above, but gzip'd tar format
  8.  
  9. __________________________________________________________________________
  10.  
  11. BEFORE YOU ASK:  UnZip, its companion utility Zip, and related utilities
  12. and support files can be found in many places; read the file "WHERE" for
  13. further details.  To contact the authors with suggestions, bug reports,
  14. or fixes, continue reading this file (README) and, if this is part of a
  15. source distribution, the file "ZipPorts" in the proginfo directory.  Also
  16. in source distributions:  read "BUGS" for a list of known bugs, non-bugs
  17. and possible future bugs; INSTALL for instructions on how to build UnZip;
  18. and "Contents" for a commented listing of all the distributed files.
  19. __________________________________________________________________________
  20.  
  21.  
  22. GENERAL INFO
  23. ------------
  24. UnZip is an extraction utility for archives compressed in .zip format (also
  25. called "zipfiles").  Although highly compatible both with PKWARE's PKZIP
  26. and PKUNZIP utilities for MS-DOS and with Info-ZIP's own Zip program, our
  27. primary objectives have been portability and non-MSDOS functionality.
  28.  
  29. This version of UnZip has been ported to a stupendous array of hardware--
  30. from micros to supercomputers--and operating systems:  Unix (many flavors),
  31. VMS, OS/2 (including DLL version), Windows NT and Windows 95 (including DLL
  32. version), Windows CE (GUI version), Windows 3.x (including DLL version),
  33. MS-DOS, AmigaDOS, Atari TOS, Acorn RISC OS, BeOS, Macintosh (GUI version),
  34. SMS/QDOS, MVS, VM/CMS, FlexOS, Tandem NSK, Human68k (mostly), AOS/VS (partly)
  35. and TOPS-20 (partly).  UnZip features not found in PKUNZIP include source
  36. code; default extraction of directory trees (with a switch to defeat this,
  37. rather than the reverse); system-specific extended file attributes; and, of
  38. course, the ability to run under most of your favorite operating systems.
  39. Plus, it's free. :-)
  40.  
  41. For source distributions, see the main Contents file for a list of what's
  42. included, and read INSTALL for instructions on compiling (including OS-
  43. specific comments).  The individual operating systems' Contents files (for
  44. example, vms/Contents) may list important compilation info in addition to
  45. explaining what files are what, so be sure to read them.  Some of the ports
  46. have their own, special README files, so be sure to look for those, too.
  47.  
  48. See unzip.1 or unzip.txt for usage (or the corresponding UnZipSFX, ZipInfo,
  49. fUnZip and ZipGrep docs).  For VMS, unzip_def.rnh or unzip_cli.help may be
  50. compiled into unzip.hlp and installed as a normal VMS help entry; see
  51. vms/descrip.mms.
  52.  
  53.  
  54. CHANGES AND NEW FEATURES
  55. ------------------------
  56. UnZip 6.0 finally supports nowadays "large" files of sizes > 2 GiB!
  57. This is the first release containing support for the PKWARE Zip64
  58. enhancements.
  59. Major changes are:
  60.    - Support PKWARE ZIP64 extensions, allowing Zip archives and Zip archive
  61.      entries larger than 4 GiBytes and more than 65536 entries within a single
  62.      Zip archive. This support is currently only available for Unix,
  63.      OpenVMS and Win32/Win64.
  64.    - Support for bzip2 compression method.
  65.    - Support for UTF-8 encoded entry names, both through PKWARE's "General
  66.      Purpose Flags Bit 11" indicator and Info-ZIP's new "up" unicode path
  67.      extra field.  (Currently, on Windows the UTF-8 handling is limited to
  68.      the character subset contained in the configured non-unicode "system
  69.      code page".)
  70.    - Added "wrong implementation used" warning to error messages of the MSDOS
  71.      port when used under Win32, in an attempt to reduce false bug reports.
  72.    - Fixed "Time of Creation/Time of Use" vulnerability when setting attributes
  73.      of extracted files, for Unix and Unix-like ports.
  74.    - Fixed memory leak when processing invalid deflated data.
  75.    - Fixed long-standing bug in unshrink (partial_clear), added boundary checks
  76.      against invalid compressed data.
  77.    - On Unix, keep inherited SGID attribute bit for extracted directories
  78.      unless restoration of owner/group id or SUID/SGID/Tacky attributes was
  79.      requested.
  80.    - On Unix, allow extracted filenames to contain embedded control characters
  81.      when explicitly requested by specifying the new command line option "-^".
  82.    - On Unix, support restoration of symbolic link attributes.
  83.    - On Unix, support restoration of 32-bit UID/GID data using the new "ux"
  84.      IZUNIX3 extra field introduced with Zip 3.0.
  85.    - Support for ODS5 extended filename syntax on new OpenVMS systems.
  86.    - Support symbolic links zipped up on VMS.
  87.    - On VMS (only 8.x or better), support symbolic link creation.
  88.    - On VMS, support option to create converted text files in Stream_LF format.
  89.    - New -D option to suppress restoration of timestamps for extracted
  90.      directory entries (on those ports that support setting of directory
  91.      timestamps).  By specifying "-DD", this new option also allows to suppress
  92.      timestamp restoration for ALL extracted files on all UnZip ports which
  93.      support restoration of timestamps.
  94.      On VMS, the default behaviour is now to skip restoration of directory
  95.      timestamps; here, "--D" restores ALL timestamps, "-D" restores none.
  96.    - On OS/2, Win32, and Unix, the (previously optional) feature UNIXBACKUP
  97.      to allow saving backup copies of overwritten files on extraction is now
  98.      enabled by default.
  99.  
  100. For the UnZip 6.0 release, we want to give special credit to Myles Bennet,
  101. who started the job of supporting ZIP64 extensions and Large-File (> 2GiB)
  102. and provided a first (alpha-state) port.
  103.  
  104. The 5.52 maintenance release fixes a few minor problems found in the 5.51
  105. release, closes some more security holes, adds a new AtheOS port, and
  106. contains a Win32 extra-field code cleanup that was not finished earlier.
  107. The most important changes are:
  108.  
  109.    - (re)enabled unshrinking support by default, the LZW patents have expired
  110.    - fixed an extraction size bug for encrypted stored entries (12 excess bytes
  111.      were written with 5.51)
  112.    - fixed false "uncompressed size mismatch" messages when extracting
  113.      encrypted archive entries
  114.    - do not restore SUID/SGID/Tacky attribute bits on Unix (BeOS, AtheOS)
  115.      unless explicitely requested by new "-K" command line qualifier
  116.    - optional support for "-W" qualifier to modify the pattern matching syntax
  117.      (with -W: "*" stops at directory delimiter, "**" matches unlimited)
  118.    - prevent buffer overflow caused by bogus extra-long Zipfile specification
  119.    - performance enhancements for VMS port
  120.    - fixed windll interface handling of its extraction mode qualifiers
  121.      nfflag, ExtractOnlyNewer, noflag, PromptToOverwrite; added detailed
  122.      explanation of their meanings and interactions to the windll documentation
  123.  
  124. The 5.51 maintenance release adds a command-line CE port, intended for
  125. batch processing. With the integration of this port, the pUnZip port
  126. has been revised and "revitalized".
  127. The most important changes for the general public are a number of
  128. bug fixes, mostly related to security issues:
  129.  
  130.    - repair a serious bug in the textmode output conversion code for the 16-bit
  131.      ports (16-bit MSDOS, OS/2 1.x, some variants of AMIGA, possibly others)
  132.      which was introduced by the Deflate64 support of release 5.5
  133.    - fix a long standing bug in the the inflate decompression method that
  134.      prevented correct extraction in some rare cases
  135.    - fixed holes in parent dir traversal security code (e.g.: ".^C." slipped
  136.      through the previous version of the check code)
  137.    - fixed security hole: check naming consistency in local and central header
  138.    - fixed security hole: prevent extracted symlinks from redirecting file
  139.      extraction paths
  140.  
  141. The main addition in the 5.5 release is support for PKWARE's new Deflate64(tm)
  142. algorithm, which appeared first in PKZIP 4.0 (published November 2000).
  143. As usual, some other bugfixes and clean-ups have been integrated:
  144.  
  145.    - support for Deflate64 (Zip compression method #9)
  146.    - support for extracting VMS variable length record text files on
  147.      any system
  148.    - optional "cheap autorun" feature for the SFX stub
  149.    - security fixes:
  150.      * strip leading slash from stored pathspecs,
  151.      * remove "../" parent dir path components from extracted file names
  152.    - new option "-:" to allow verbatim extraction of file names containing
  153.      "../" parent dir path specs
  154.    - fixed file handle leak for the DLL code
  155.    - repaired OS2 & WinNT ACL extraction which was broken in 5.42
  156.  
  157. The 5.42 maintenance release fixes more bugs and cleans up the redistribution
  158. conditions:
  159.  
  160.    - removal of unreduce.c and amiga/timelib.c code to get rid of the last
  161.      distribution restrictions beyond the BSD-like Info-ZIP LICENSE
  162.    - new generic timelib replacement (currently used by AMIGA port)
  163.    - more reasonable mapping rules of UNIX "leading-dot" filenames to the
  164.      DOS 8.3 name convention
  165.    - repaired screensize detection in MORE paging code
  166.      (was broken for DOS/OS2/WIN32 in 5.41)
  167.  
  168. The 5.41 maintenance release adds another new port and fixes some bugs.
  169.  
  170.    - new BSD-like LICENSE
  171.    - new Novell Netware NLM port
  172.    - supports extraction of archives with more than 64k entries
  173.    - attribute handling of VMS port was broken in UnZip 5.4
  174.    - decryption support integrated in the main source distribution
  175.  
  176. The 5.4 release adds new ports, again. Other important items are changes
  177. to the listing format, new supplemental features and several bug fixes
  178. (especially concerning time-stamp handling...):
  179.  
  180.    - new IBM OS/390 port, a UNIX derivate (POSIX with EBCDIC charset)
  181.    - complete revision of the MacOS port
  182.    - changed listing formats to enlarge the file size fields for more digits
  183.    - added capability to restore directory attributes on MSDOS, OS/2, WIN32
  184.    - enabled support of symbolic links on BeOS
  185.    - Unix: optional Acorn filetype support, useful for volumes exported via NFS
  186.    - several changes/additions to the DLL API
  187.    - GUI SFX stub for Win16 (Windows 3.1) and Win32 (Windows 9x, Windows NT)
  188.    - new free GCC compiler environments supported on WIN32
  189.    - many time-zone handling bug fixes for WIN32, AMIGA, ...
  190.  
  191. The 5.32 release adds two new ports and a fix for at least one relatively
  192. serious bug:
  193.  
  194.    - new FlexOS port
  195.    - new Tandem NSK port
  196.    - new Visual BASIC support (compatibility with the Windows DLLs)
  197.    - new -T option (set zipfile timestamp) for virtually all ports
  198.    - fix for timestamps beyond 2038 (e.g., 2097; crashed under DOS/Win95/NT)
  199.    - fix for undetected "dangling" symbolic links (i.e., no pointee)
  200.    - fix for VMS indexed-file extraction problem (stored with Zip 2.0 or 2.1)
  201.    - further performance optimizations
  202.  
  203. The 5.31 release included nothing but small bug-fixes and typo corrections,
  204. with the exception of some minor performance tweaks.
  205.  
  206. The 5.3 release added still more ports and more cross-platform portability
  207. features:
  208.  
  209.    - new BeOS port
  210.    - new SMS/QDOS port
  211.    - new Windows CE graphical port
  212.    - VM/CMS port fully updated and tested
  213.    - MVS port fully updated and tested
  214.    - updated Windows DLL port, with WiZ GUI spun off to a separate package
  215.    - full Universal Time (UTC or GMT) support for trans-timezone consistency
  216.    - cross-platform support for 8-bit characters (ISO Latin-1, OEM code pages)
  217.    - support for NT security descriptors (ACLs)
  218.    - support for overwriting OS/2 directory EAs if -o option given
  219.    - updated Solaris/SVR4 package facility
  220.  
  221. What is (still!) not added is multi-part archive support (a.k.a. "diskette
  222. spanning", though we really mean archive splitting and not the old diskette
  223. spanning) and a unified and more powerful DLL interface.  These are the two
  224. highest priorities for the 6.x releases.  Work on the former is almost
  225. certain to have commenced by the time you read this.  This time we mean it!
  226. You betcha. :-)
  227.  
  228. Although the DLLs are still basically a mess, the Windows DLLs (16- and 32-
  229. bit) now have some documentation and a small example application.  Note that
  230. they should now be compatible with C/C++, Visual BASIC and Delphi.  Weirder
  231. languages (FoxBase, etc.) are probably Right Out.
  232.  
  233.  
  234. INTERNET RESOURCES
  235. ------------------
  236.  
  237. Info-ZIP's web site is at http://www.info-zip.org/pub/infozip/
  238. and contains the most up-to-date information about coming releases,
  239. links to binaries, and common problems.
  240. (See http://www.info-zip.org/pub/infozip/FAQ.html for the latter.)
  241. Files may also be retrieved via ftp://ftp.info-zip.org/pub/infozip/ .
  242. Thanks to LEO (Munich, Germany) for previously hosting our primary site.
  243.  
  244.  
  245. DISTRIBUTION
  246. ------------
  247. If you have a question regarding redistribution of Info-ZIP software, either
  248. as is, as packaging for a commercial product, or as an integral part of a
  249. commercial product, please read the Frequently Asked Questions (FAQ) section
  250. of the included COPYING file.  All Info-ZIP releases are now covered by
  251. the Info-ZIP license.  See the file LICENSE.  The most current license
  252. should be available at http://www.info-zip.org/license.html and
  253. ftp://ftp.info-zip.org/pub/infozip/license.html.
  254.  
  255. Insofar as C compilers are rare on some platforms and the authors only have
  256. direct access to a subset of the supported systems, others may wish to pro-
  257. vide ready-to-run executables for new systems.  In general there is no prob-
  258. lem with this; we require only that such distributions include this README
  259. file, the WHERE file, the LICENSE file (contains copyright/redistribution
  260. information), and the appropriate documentation files (unzip.txt and/or
  261. unzip.1 for UnZip, etc.).  If the local system provides a way to make self-
  262. extracting archives in which both the executables and text files can be
  263. stored together, that's best (in particular, use UnZipSFX if at all possible,
  264. even if it's a few kilobytes bigger than the alternatives); otherwise we
  265. suggest a bare UnZip executable and a separate zipfile containing the re-
  266. maining text and binary files.  If another archiving method is in common
  267. use on the target system (for example, Zoo or LHa), that may also be used.
  268.  
  269.  
  270. BUGS AND NEW PORTS:  CONTACTING INFO-ZIP
  271. ----------------------------------------
  272. All bug reports and patches (context diffs only, please!) should be
  273. submitted either through the new Info-ZIP Discussion Forum at
  274. http://www.info-zip.org/board/board.pl or through the Info-ZIP SourceForge
  275. site at http://sourceforge.net/projects/infozip/.  The forum allows file
  276. attachments while SourceForge provides a place to post patches.  The old
  277. Zip-Bugs@lists.wku.edu e-mail address for the Info-ZIP authors was
  278. discontinued after heavy continuous spam, as was the QuickTopic discussion
  279. forum.  The above methods are public, but we also can be reached directly
  280. using the web reply page at http://www.info-zip.org/zip-bug.html.  If you
  281. need to send us files privately, contact us first for instructions.
  282.  
  283. "Dumb questions" that aren't adequately answered in the documentation
  284. should also be directed to Zip-Bugs rather than to a global forum such
  285. as Usenet.  (Kindly make certain that your question *isn't* answered by
  286. the documentation, however--a great deal of effort has gone into making
  287. it clear and complete.)
  288.  
  289. Suggestions for new features can be discussed on the new Discussion Forum.
  290. A new mailing list for Info-ZIP beta testers and interested parties may
  291. be created someday, but for now any issues found in the betas should use
  292. the forum.  We make no promises to act on all suggestions or even all
  293. patches, but if it is something that is manifestly useful, sending the
  294. required patches to Zip-Bugs directly (as per the instructions in the
  295. ZipPorts file) is likely to produce a quicker response than asking us to
  296. do it--the authors are always ridiculously short on time.  (Please do
  297. NOT send patches or encoded zipfiles to the Info-ZIP list.  Please DO
  298. read the ZipPorts file before sending any large patch.  It would be
  299. difficult to over-emphasize this point...)
  300.  
  301. If you are considering a port, not only should you read the ZipPorts file,
  302. but also please check in with Zip-Bugs BEFORE getting started, since the
  303. code is constantly being updated behind the scenes.  (For example, VxWorks,
  304. VMOS and Netware ports were once claimed to be under construction, although
  305. we have yet to see any up-to-date patches.)  We will arrange to send you the
  306. latest sources.  The alternative is the possibility that your hard work will
  307. be tucked away in a subdirectory and mostly ignored, or completely ignored
  308. if someone else has already done the port (and you'd be surprised how often
  309. this has happened).
  310.  
  311.  
  312. BETA TESTING:  JOINING INFO-ZIP
  313. -------------------------------
  314. If you'd like to keep up to date with our UnZip (and companion Zip utility)
  315. development, join the ranks of beta testers, add your own thoughts and
  316. contributions, or simply lurk, you may join one of our mailing lists.
  317. There is an announcements-only list (Info-ZIP-announce) and a general
  318. discussion/testing list (Info-ZIP). You must be a subscriber to post, and
  319. you can subscribe via the links on our Frequently Asked Questions page:
  320.  
  321.         http://www.info-zip.org/pub/infozip/FAQ.html#lists
  322.  
  323. (Please note that as of late May 2004, the lists are unavailable pending
  324. a move to a new site; we hope to have them restored shortly.  In the
  325. interim ...)  Feel free to use our bug-reporting web page for bug reports
  326. and to ask questions not answered on the FAQ page above:
  327.  
  328.         http://www.info-zip.org/zip-bug.html
  329.  
  330. For now the best option is to monitor and contribute to the various threads
  331. on the new discussion forum site at:
  332.  
  333.       http://www.info-zip.org/board/board.pl
  334.  
  335. The second best way to contribute is through the various features at
  336. SourceForge, such as the bug posting areas.
  337.  
  338. There is also a closed mailing list for internal discussions of our core
  339. development team. This list is now kept secret to prevent us from being
  340. flooded with spam messages.
  341.  
  342.  
  343. -- Greg Roelofs (sometimes known as Cave Newt), principal UnZip developer
  344.    guy, with inspiration from David Kirschbaum, was Author of this text.
  345.  
  346. -- Christian Spieler (shorthand: SPC), current UnZip maintenance coordinator,
  347.    applied the most recent changes, with Ed Gordon providing a few additions.
  348.