tests: reference: don't rely on od's -w option
[gzip.git] / README
blob9d5d1fd523a8dc83ed994917765c7fc717ad5bab
1 This is the file README for the gzip distribution.
3 The GNU gzip home page is https://www.gnu.org/software/gzip.
5 gzip (GNU zip) is a compression utility designed to be a replacement
6 for 'compress'. Its main advantages over compress are much better
7 compression and freedom from patented algorithms.  The GNU Project
8 uses it as the standard compression program for its system.
10 gzip currently uses by default the LZ77 algorithm used in zip 1.9 (the
11 portable pkzip compatible archiver). The gzip format was however
12 designed to accommodate several compression algorithms. See below
13 for a comparison of zip and gzip.
15 gunzip can currently decompress files created by gzip, compress or
16 pack. The detection of the input format is automatic.  For the
17 gzip format, gunzip checks a 32 bit CRC. For pack, gunzip checks the
18 uncompressed length.  The 'compress' format was not designed to allow
19 consistency checks. However gunzip is sometimes able to detect a bad
20 .Z file because there is some redundancy in the .Z compression format.
21 If you get an error when uncompressing a .Z file, do not assume that
22 the .Z file is correct simply because the standard uncompress does not
23 complain.  This generally means that the standard uncompress does not
24 check its input, and happily generates garbage output.
26 gzip produces files with a .gz extension. Previous versions of gzip
27 used the .z extension, which was already used by the 'pack'
28 Huffman encoder. gunzip is able to decompress .z files (packed
29 or gzip'ed).
31 Several planned features are not yet supported (see the file TODO).
32 See the file NEWS for a summary of changes since the last release.
33 See the file INSTALL for installation instructions.
35 WARNING: gzip is sensitive to compiler bugs, particularly when
36 optimizing.  Use "make check" to check that gzip was compiled
37 correctly.  Try compiling gzip without any optimization if you have a
38 problem.
40 Please send all comments and bug reports by electronic mail to
41 <bug-gzip@gnu.org>.
43 Bug reports should ideally include:
45     * The complete output of "gzip -V" (or the contents of revision.h
46       if you can't get gzip to compile)
47     * The hardware and operating system (try "uname -a")
48     * The compiler used to compile (if it is gcc, use "gcc -v")
49     * A description of the bug behavior
50     * The input to gzip, that triggered the bug
52 If you send me patches for machines I don't have access to, please test them
53 very carefully. gzip is used for backups, it must be extremely reliable.
55 The znew and gzexe shell scripts provided with gzip benefit from
56 (but do not require) the (non-GNU) cpmod utility to transfer file attributes.
58 The sample programs zread.c, sub.c and add.c in subdirectory sample
59 are provided as examples of useful complements to gzip. Read the
60 comments inside each source file.  The perl script ztouch is also
61 provided as example (not installed by default since it relies on perl).
64 gzip is free software, you can redistribute it and/or modify it under
65 the terms of the GNU General Public License, a copy of which is
66 provided under the name COPYING. The latest version of gzip is always
67 available from https://ftp.gnu.org/gnu/gzip or in any of the GNU
68 mirror sites.
70 Many thanks to those who provided me with bug reports and feedback.
71 See the files THANKS and ChangeLog for more details.
74                 Note about zip vs. gzip:
76 The name 'gzip' was a very unfortunate choice, because zip and gzip
77 are two really different programs, although the actual compression and
78 decompression sources were written by the same persons. A different
79 name should have been used for gzip, but it is too late to change now.
81 zip is an archiver: it compresses several files into a single archive
82 file. gzip is a simple compressor: each file is compressed separately.
83 Both share the same compression and decompression code for the
84 'deflate' method.  unzip can also decompress old zip archives
85 (implode, shrink and reduce methods). gunzip can also decompress files
86 created by compress and pack. zip 1.9 and gzip do not support
87 compression methods other than deflation. (zip 1.0 supports shrink and
88 implode). Better compression methods may be added in future versions
89 of gzip. zip will always stick to absolute compatibility with pkzip,
90 it is thus constrained by PKWare, which is a commercial company.  The
91 gzip header format is deliberately different from that of pkzip to
92 avoid such a constraint.
94 On Unix, gzip is mostly useful in combination with tar. GNU tar
95 1.11.2 and later has a -z option to invoke gzip automatically.  "tar -z"
96 compresses better than zip, since gzip can then take advantage of
97 redundancy between distinct files. The drawback is that you must
98 scan the whole tar.gz file in order to extract a single file near
99 the end; unzip can directly seek to the end of the zip file. There
100 is no overhead when you extract the whole archive anyway.
101 If a member of a .zip archive is damaged, other files can still
102 be recovered. If a .tar.gz file is damaged, files beyond the failure
103 point cannot be recovered. (Future versions of gzip will have
104 error recovery features.)
106 gzip and gunzip are distributed as a single program. zip and unzip
107 are, for historical reasons, two separate programs, although the
108 authors of these two programs work closely together in the Info-ZIP
109 team. zip and unzip are not associated with the GNU project.
110 See https://infozip.sourceforge.net/ for more about zip and unzip.
113 For any copyright year range specified as YYYY-ZZZZ in this package
114 note that the range specifies every single year in that closed interval.
116 ========================================================================
118 Copyright (C) 1999, 2001-2002, 2006-2007, 2009-2024 Free Software Foundation,
119 Inc.
120 Copyright (C) 1992, 1993 Jean-loup Gailly
122 Permission is granted to copy, distribute and/or modify this document
123 under the terms of the GNU Free Documentation License, Version 1.3 or
124 any later version published by the Free Software Foundation; with no
125 Invariant Sections, with no Front-Cover Texts, and with no Back-Cover
126 Texts.  A copy of the license is included in the ``GNU Free
127 Documentation License'' file as part of this distribution.