Imported Upstream version 1.4
[debian/gzip] / ChangeLog
1 2010-01-20  Jim Meyering  <meyering@redhat.com>
2
3         version 1.4
4         * NEWS: Record release date.
5
6         tests: exercise the segfault fix
7         * tests/helin-segv: New test.
8         * Makefile.am (TESTS): Add it.
9
10         gzip -d: do not clobber stack for valid input on x86_64
11         * unlzw.c (unlzw): Avoid integer overflow.
12         Aki Helin reported the segfault along with an input to trigger the bug.
13         * NEWS (Bug fixes): Mention it.
14
15         maint: avoid a minor "make syntax-check" failure
16         * .x-sc_file_system: Exempt NEWS, since it includes a literal
17         from an old diagnostic.
18
19         maint: remove unused file: README-alpha
20         * README-alpha: Remove unused file.
21
22         build: update gnulib submodule to latest
23
24 2010-01-11  Yuxi Zhang  <YZhang@qnx.com>
25
26         gzip -d: use memcpy more often
27         * inflate.c (inflate_codes): Use memcpy (rather than slower
28         memcopy-like code) in more cases.
29
30 2010-01-11  Jim Meyering  <meyering@redhat.com>
31
32         build: do not override gnulib-provided AM_CFLAGS options
33         Avoid a warning from automake:
34         lib/Makefile.am:24: AM_CFLAGS multiply defined in condition TRUE ...
35         lib/gnulib.mk:30: ... `AM_CFLAGS' previously defined here
36         lib/Makefile.am:20:   `lib/gnulib.mk' included from here
37
38         * lib/Makefile.am (AM_CFLAGS): Append $(WARN_CFLAGS) and
39         $(WERROR_CFLAGS), i.e., use "+=", not "=".
40         This was introduced via 2009-12-17 commit 0341fc22,
41         "build: with --enable-gcc-warnings, use -Werror",
42         but fortunately is not a bug, because the definition
43         it would have overridden was always empty.
44
45         gzip -d would fail with a CRC error...
46         ...for some inputs, and some memcpy implementations.  It is possible
47         that an offending input has to be compressed "from FAT filesystem
48         (MS-DOS, OS/2, NT)", since the sole reproducer no longer evokes a
49         CRC error when uncompressed and recompressed on a GNU/Linux system.
50         Also, using an unpatched reverse-memcpy-gzip on over 100,000 inputs
51         on a GNU/Linux system did not turn up another reproducer.
52         * inflate.c (inflate_codes): Don't call memcpy with overlapping regions.
53         Properly detect when source and destination overlap.
54         * tests/memcpy-abuse: New test, to trigger misbehavior.
55         * Makefile.am (TESTS): Add it.
56         * NEWS (Bug fixes): Mention it.
57         Reported by Alain Magloire in
58         http://thread.gmane.org/gmane.comp.gnu.gzip.bugs/307
59
60 2010-01-08  Jim Meyering  <meyering@redhat.com>
61
62         tests: switch to gnulib's init.sh test infrastructure
63         * tests/test-lib.sh: Remove file.
64         * tests/init.sh: New file, from gnulib.
65         * tests/trailing-nul: Use the new file.
66         * tests/zdiff: Likewise.
67         * tests/zgrep-f: Likewise.
68         * Makefile.am (EXTRA_DIST): List tests/init.sh, not test-lib.sh.
69
70         build: update gnulib submodule to latest
71
72 2010-01-03  Jim Meyering  <meyering@redhat.com>
73
74         maint: record update-copyright options for this package
75         * cfg.mk: Next time, just run "make update-copyright".
76
77 2010-01-01  Jim Meyering  <meyering@redhat.com>
78
79         maint: update all FSF copyright year lists to include 2010
80         Use this command:
81         git ls-files |grep -vE '^(\..*|COPYING|gnulib)$' |xargs \
82         env UPDATE_COPYRIGHT_USE_INTERVALS=1 build-aux/update-copyright
83
84 2009-12-31  Jim Meyering  <meyering@redhat.com>
85
86         maint: newer gnulib; don't hard-code my GPG key ID
87         * cfg.mk (gpg_key_ID): Remove definition, now that maint.mk automates it.
88         * gnulib: Update to lastest.
89
90 2009-12-30  Jim Meyering  <meyering@redhat.com>
91
92         build: update gnulib submodule to latest
93
94         maint: remove lots of obsolete #if...HAVE_* checks
95         Remove many always-true cpp tests like #ifdef HAVE_UNISTD_H,
96          #ifdef HAVE_FCNTL_H and #ifdef SSIZE_MAX.
97         * gzip.c: As above.
98         * gzip.h: Likewise.
99         * inflate.c: Likewise.
100         * tailor.h: Likewise.
101         * unlzw.c: Likewise.
102         * util.c: Likewise.
103         * zip.c: Likewise.
104
105         build: add a syntax-check
106         * cfg.mk (sc_prohibit_obsolete_HAVE_HEADER_H): New rule.
107
108         build: with --enable-gcc-warnings, use -Werror
109         * Makefile.am (AM_CFLAGS): Enable $(WERROR_CFLAGS).
110         * lib/Makefile.am (AM_CFLAGS): Enable both $(WARN_CFLAGS) and
111         $(WERROR_CFLAGS).
112
113         build: quiet warnings from util.c
114         * configure.ac (warnings): Add -Wno-overflow and -Wno-type-limits.
115
116         build: avoid warning about possibly-no-return functions
117         * gzip.h (read_error, write_error): Mark these functions as "no-return".
118
119         build: avoid warning about ignored chown/fchown return value
120         * bootstrap.conf (gnulib_modules): Add ignore-value.
121         * gzip.c: Include "ignore-value.h".
122         (copy_stat): Explicitly ignore chown and fchown failure
123
124         build: update gnulib submodule to latest
125
126 2009-11-20  Jim Meyering  <meyering@redhat.com>
127
128         build: unlzw.c: avoid warnings about unused macros
129         * configure.ac: Turn off -Wunused-macros.
130
131         build: avoid warnings about unused macros
132         * unzip.c (LOCTIM): Comment out unused macro.
133         * deflate.c (EQUAL): Remove definition.  Use "0" at sole point of use.
134
135         build: util.c: avoid warnings about add_envopt
136         * util.c (add_envopt): The parameter "env" was used for two conflicting
137         purposes.  One use required a const char* parameter, while the other
138         was used as an argument to free, which must not be "const".
139         Rename the parameter and use a new local variable for the second role.
140
141         build: avoid many const-related warnings
142         * gzip.c: Add "const" to many variables, to avoid compiler warnings.
143         * util.c (add_envopt): Make 3rd parameter const
144         (gzip_error): Make sole parameter const.
145         * gzip.h: Update prototypes.
146
147         build: avoid warnings from -Wstrict-prototypes
148         * gzip.c (main): Declare using a prototype.
149         (progerror): Likewise.  And make parameter const.
150
151         build: use gnulib's fdopendir module
152         * bootstrap.conf (gnulib_modules): Add fdopendir.
153         * gzip.c (treat_dir): Don't depend on HAVE_FDOPENDIR.
154         Gnulib now guarantees its availability.
155         * configure.ac: Don't check for fdopendir here.
156
157         build: enable many warnings
158         * configure.ac: Add support for --enable-gcc-warnings.
159         * bootstrap.conf (gnulib_modules): Add manywarnings.
160         * Makefile.am (AM_CFLAGS): Add (WARN_CFLAGS) # $(WERROR_CFLAGS)
161
162         maint: tweak formatting of bootstrap.conf
163         * bootstrap.conf (gnulib_modules): Unindent list.
164
165         maint: cfg.mk: remove factored-out ftp host/dir definitions
166         * cfg.mk (gnu_ftp_host-alpha, gnu_ftp_host-beta gnu_ftp_host-stable):
167         (gnu_rel_host, url_dir_list): Remove definitions.  The defaults,
168         now provided by maint.mk, are the same.
169         * gnulib: Update for latest, including those maint.mk additions.
170
171         build: "make stable" emitted an invalid gnupload command
172         * cfg.mk (gnu_ftp_host-stable): Rename from gnu_ftp_host-major.
173         * README-release: Change another s/major/stable/.
174
175 2009-10-30  Jim Meyering  <meyering@redhat.com>
176
177         post-release administrivia
178         * NEWS: Add header line for next release.
179         * .prev-version: Record previous version.
180         * cfg.mk (old_NEWS_hash): Auto-update.
181
182         version 1.3.14
183         * NEWS: Record release date.
184
185         build: accommodate new syntax-check test
186         * amiga/tailor.c (_expand_args): Change each of three uses of
187         "exit(20)" to "exit(EXIT_FAILURE)".
188         * sample/add.c: Include <stdlib.h>.
189         (main): Use EXIT_FAILURE and EXIT_SUCCESS, not 1 and 0.
190         * sample/sub.c (main): Likewise.
191         * sample/zread.c (main): Likewise.
192
193         build: update gnulib submodule to latest
194
195         build: link with $(LIB_CLOCK_GETTIME)
196         * Makefile.am (gzip_LDADD): Add $(LIB_CLOCK_GETTIME), now that
197         utimens pulls in gettime.
198         (FILES_TO_CHECK): Remove $(gzip_LDADD), now that it may contain -lrt.
199
200 2009-10-28  Jim Meyering  <meyering@redhat.com>
201
202         msdos: fix syntax in Makefile.djg
203         * msdos/Makefile.djg (gzip): Change each of two leading 8-space
204         sequences to a TAB.  Reported by Allan Mui.
205
206 2009-10-20  Jim Meyering  <meyering@redhat.com>
207
208         build: do not use AC_PREFIX_PROGRAM
209         * configure.ac: Do not use "AC_PREFIX_PROGRAM(gzip)".
210         It would induce behavior that is so surprising that it is probably
211         universally considered to be buggy, these days.  Reported by Zube
212         in http://thread.gmane.org/gmane.comp.gnu.gzip.bugs/273
213
214 2009-10-10  Jim Meyering  <meyering@redhat.com>
215
216         gzip: add tests for today's bug fix
217         * tests/trailing-nul: New file.  Test for today's fix.
218         * Makefile.am (TESTS): Add new script.
219         * NEWS (Bug fixes): Mention it.
220
221 2009-10-10  Daniel Barkalow  <barkalow@iabervon.org>
222
223         gzip: don't fail when there is exactly one trailing NUL byte
224         * gzip.c (get_method): Require the second byte of magic only if
225         the first byte was nonzero.
226
227 2009-10-09  Jim Meyering  <meyering@redhat.com>
228
229         build: enable automake color- and parallel-test options
230         * configure.ac (AM_INIT_AUTOMAKE): Enable color-tests and parallel-tests.
231
232         zgrep: portability improvements; exercise "-f -"
233         * zgrep.in: Adjust loop not to use seq; it's not portable enough.
234         Fail if we don't find a free file descriptor.
235         (exists): New function; Use it in place of less portable "test -e".
236         Testing for existence of /dev/fd/$fd doesn't work on Solaris 10,
237         since all 256 always exist (as char devices), but testing for
238         /proc/$$/fd/$fd does work, so do that instead.
239         * Makefile.am (TESTS): Add tests/zgrep-f.
240         * tests/zgrep-f: New test; exercise this bug.
241         * NEWS (Bug fixes): Mention it.
242
243 2009-10-09  Carl Worth  <cworth@cworth.org>
244
245         zgrep: handle "-f -" the same way that it works with grep
246         Before this change, echo needle|zgrep -f - haystack.gz would not work.
247         * zgrep.in: When the pattern comes from stdin, redirect it to a
248         different file descriptor, since we're about to use stdin.
249
250 2009-10-09  Jim Meyering  <meyering@redhat.com>
251
252         zdiff would exit 2 (error) rather than 1 for differences
253         * zdiff.in: Save and restore cmp's exit status around a case
254         statement that would otherwise clobber its value.
255         * NEWS (Bug fixes): Mention it.
256         * tests/zdiff: New test; exercise both bugs.
257         * tests/test-lib.sh: New file.  From coreutils.
258         * Makefile.am (EXTRA_DIST): Add tests/test-lib.sh.
259         (TESTS): Add tests/zdiff.
260         (TESTS_ENVIRONMENT): Define.  From coreutils.
261         (EXTRA_DIST): Append all $(TESTS).
262
263         zdiff: fix malfunction when operating on two gzip'd inputs
264         zdiff would fail to print differences in two compressed inputs
265         * zdiff.in: Don't let cmp output mix with echo'd gzip exit
266         status values.  Report and fix from Jörg-Volker Peetz via
267         <http://bugs.debian.org/434275>
268         * NEWS (Bug fixes): Mention it.
269
270         build: update gnulib submodule to latest
271
272 2009-10-07  Jim Meyering  <meyering@redhat.com>
273
274         build: update gnulib submodule to latest
275
276 2009-10-06  Jim Meyering  <meyering@redhat.com>
277
278         maint: clarify web-doc-update instructions
279         * README-release: sync a tiny change from coreutils.
280
281 2009-10-03  Jim Meyering  <meyering@redhat.com>
282
283         build: update gnulib submodule to latest
284
285         doc: use gnu-web-doc-update module
286         * bootstrap.conf (gnulib_modules): Add it.
287
288 2009-10-02  Jim Meyering  <meyering@redhat.com>
289
290         doc: describe release procedure
291         * README-release: New file.
292
293 2009-10-01  Jim Meyering  <meyering@redhat.com>
294
295         maint: make cfg.mk slightly more generic
296         * cfg.mk (url_dir_list): Don't hard-code "coreutils".  Use $(PACKAGE).
297
298 2009-09-30  Jim Meyering  <meyering@redhat.com>
299
300         post-release administrivia
301         * NEWS: Add header line for next release.
302         * .prev-version: Record previous version.
303         * cfg.mk (old_NEWS_hash): Auto-update.
304
305         version 1.3.13
306         * NEWS: Record release date.
307
308         build: update gnulib submodule to latest
309
310         maint: update bootstrap script
311         * bootstrap (with_gettext): Update from coreutils.
312
313         maint: pull in two release-related modules from gnulib
314         * bootstrap.conf (gnulib_modules): Add announce-gen and gnupload.
315
316         build: use more gnulib modules for better POSIX compliance
317         * bootstrap.conf (gnulib_modules): Add modules exposed via
318         make CFLAGS=-DGNULIB_POSIXCHECK 2>&1 \
319         |perl -lne '/.* use gnulib module (\S+).*/ and print $1' \
320         |sort |uniq -c|sort -nr
321         Add these: calloc close fclose fprintf-posix lstat malloc
322         perror printf-posix realloc
323
324 2009-09-30  Karl Berry  <karl@freefriends.org>
325
326         doc: update to FDL 1.3, minor clean-up
327         * NEWS, README, TODO: Update FDL s/1.2/1.3/.
328
329 2009-09-28  Karl Berry  <karl@freefriends.org>
330
331         doc: update gzip.texi
332         * doc/gzip.texi: FDL 1.3+
333         Consistently (de)capitalize section names.
334         "User's" is not correct; seems best to simplify the title.
335         Throw in some "GNU"'s.
336         Make direntries be what we actually want.
337         Detabify.
338
339 2009-09-26  Jim Meyering  <meyering@redhat.com>
340
341         maint: temporarily exempt failing syntax-check tests
342         * cfg.mk (local-checks-to-skip): Add the list of currently-failing
343         tests, to exempt them from "make syntax-check".
344
345         gzip: don't use an uninitialized file descriptor
346         gzip interprets an argument of "-" as indicating stdin, but when
347         "-" is not the first name on the command line, it doesn't work.
348         * gzip.c (treat_stdin): Initialize "ifd".
349         Patch and fine description by Lasse Collin in
350         http://www.mail-archive.com/bug-gzip@gnu.org/msg00213.html
351         * Makefile.am (check-local): Exercise the fix.  Based on the above.
352         * NEWS (Bug fixes): Mention this.
353
354         maint: use a git submodule for gnulib
355         * .gitmodules: New file, to track gnulib.
356         * gnulib: New file, created by running this:
357         git submodule add git://git.sv.gnu.org/gnulib.git gnulib
358
359         maint: update existing copyright year lists to include 2009
360         * bootstrap.conf (gnulib_modules): Add update-copyright.
361
362         maint: include <config.h> first in many files
363
364         maint: avoid another "make syntax-check" failure
365         * lib/Makefile.am (match.$(OBJEXT)): Use $(ASCPPPOST), not @ASCPPPOST@.
366
367         maint: remove RCS $Id$ variables and comments
368
369         maint: change spelling in comments: s/filesystem/file system/
370
371         maint: don't use "the the"
372         * msdos/doturboc.bat: s/the the/the/.
373
374         maint: remove trailing blanks
375
376         maint: remove useless if-before-free tests
377         * gzip.c (do_exit): Remove useless if-before-free tests.
378
379         maint: remove useless casts to avoid "make syntax-check" failures
380         * gzip.c (do_exit): Remove anachronistic cast.
381         * inflate.c (huft_free): Likewise.
382         * util.c (add_envopt): Likewise.
383         * vms/vms.c (vms_expand_args): Likewise.
384
385         maint: new file: .prev-version
386         * .prev-version: New file, to record previous version number.
387
388 2009-09-06  Jim Meyering  <meyering@redhat.com>
389
390         build: avoid spurious warnings from clang
391         * gzip.h (gzip_error): Declare with ATTRIBUTE_NORETURN.
392
393         maint: update build-from-scratch infrastructure
394         * bootstrap: Modernize.
395         * bootstrap.conf: Modernize.
396         * cfg.mk: New file.
397
398 2009-08-18  Jim Meyering  <meyering@redhat.com>
399
400         inflate: avoid a leak on a error path
401         * inflate.c (inflate_dynamic): Don't leak
402
403         maint: ignore a few generated files
404         * lib/.gitignore: ignore more generated files.
405
406         tests: add a test for just-fixed bug
407         * tests/hufts-segv.gz: New file, from bug report.
408         * Makefile.am (EXTRA_DIST): Add tests/hufts-segv.gz.
409         (check-local): Exercise the bug.
410
411         tests: don't misinterpret a failing test as successful
412         * Makefile.am (check-local): Exit "1" upon failure, not 0.
413
414 2009-08-18  Thiemo Nagel  <thiemo.nagel@ph.tum.de>
415
416         avoid creating an undersized buffer for the hufts table
417         A malformed input file can cause gzip to crash with a segmentation
418         violation or hang in an endless loop.
419         Reported in <http://bugs.debian.org/507263>.
420         * NEWS (Bug fixes): Mention it.
421
422 2009-08-18  Jim Meyering  <meyering@redhat.com>
423
424         avoid silent data loss e.g., on NFS, due to unchecked close of stdout
425         * gzip.c: Include "closein.h".
426         (main): Use atexit (close_stdin);
427         * bootstrap.conf (gnulib_modules): Add closein.
428         Prompted by Mark Kidwell's report and patch in
429         http://bugs.debian.org/538187
430         * NEWS (Bug fixes): Mention it.
431         * */.gitignore: Update.
432
433         build: require automake-1.11 and produce xz-compressed tarballs, too
434         * configure.ac: Require automake-1.11.  Use the dist-xz option.
435
436         build: avoid non-srcdir build failure
437         * Makefile.am (gzip.doc.gz): Use $(srcdir)/gzip.doc, not gzip.doc.
438         Don't redirect directly to $@.  Use $(AM_V_GEN).
439         (gzip.doc, .in): Don't redirect directly to $@.  Use $(AM_V_GEN).
440         * NEWS: Add template header for upcoming release.
441
442         build: enable git-version-gen, automake silent rules, generate ChangeLog
443         * configure.ac (AC_INIT): Use git-version-gen.
444         Use AM_SILENT_RULES([yes]).
445         (AM_INIT_AUTOMAKE): Drop gnits; conflicts with git-version-gen versions.
446         * bootstrap.conf (gnulib_modules): Use getopt-gnu
447         Ensure ChangeLog exists, for automake.
448         rather than obsolete "getopt" module.
449         Add gitlog-to-changelog.
450         Add git-version-gen.
451         Add gnu-make, gnumakefile and maintainer-makefile.
452         * Makefile.am (dist-hook, gen-ChangeLog): New rules, to generate
453         ChangeLog and insert it into the distribution tarball.
454         (EXTRA_DIST): Add ChangeLog-2007.
455
456         maint: retire the last VC'd ChangeLog file
457         * ChangeLog-2007: Rename from ChangeLog.
458         From now on, the ChangeLog file will be generated automatically
459         from commit logs.
460
461         maint: rename .cvsignore files to .gitignore
462         * .gitignore: Renamed from .cvsignore.
463         * doc/.gitignore: Likewise.
464         * lib/.gitignore: Likewise.
465         * m4/.gitignore: Likewise.