1 2018-12-29 Jim Meyering <meyering@fb.com>
4 * NEWS: Record release date.
6 2018-12-23 Paul Eggert <eggert@cs.ucla.edu>
8 build: enable -Wunreachable-code
9 * configure.ac (nw): Remove -Wunreachable-code from the list of
10 disabled warnings, now that all offending statements have been removed.
12 maint: remove unreachable code
13 Problem reported by Oracle Developer Studio 12.6.
14 In the old days we needed a return statement at the end of
15 the gzip main function to pacify traditional 'lint', but
16 lint checkers nowadays are smarter.
18 * zip.c (file_read): Remove unreachable code.
20 2018-12-23 Jim Meyering <meyering@fb.com>
22 maint: use a slightly cleaner expression
23 * gzip.c (do_list): Simplify an expression:
24 - int positive_off_t_width = INT_BUFSIZE_BOUND (off_t) - 2;
25 + int positive_off_t_width = INT_STRLEN_BOUND (off_t) - 1;
27 2018-12-22 Jim Meyering <meyering@fb.com>
29 build: avoid build failure with --enable-gcc-warnings and latest gcc
30 * gzip.c (do_list): There was a loop to compute the maximum width
31 of a decimal positive off_t value. Replace it with assignment to a
32 constant. Noticed because gcc 9.0.0 20181219 warned about its use
33 as a printf format-width value.
34 (OFF_T_MAX): Remove now-unused definition.
36 2018-12-21 Jim Meyering <meyering@fb.com>
38 maint: improve a comment
39 * trees.c (flush_block): Fix grammar/spelling in a comment.
41 maint: update gnulib to latest; also update bootstrap and init.sh
43 build: make the autoconf-2.63 requirement explicit
44 * configure.ac: AC_PREREQ: Require 2.63, not 2.59.
45 Autoconf-2.63 has been required for some time via gnulib.
46 This merely makes it explicit.
48 2018-11-30 Paul Eggert <eggert@cs.ucla.edu>
50 gzip: fix use of uninitialized memory
51 Problem reported by Hanno Böck (Bug#33501).
53 * inflate.c (inflate_dynamic): Return if code is invalid.
55 * tests/hufts: Add test case for the bug.
57 2018-08-19 Paul Eggert <eggert@cs.ucla.edu>
59 * gzip.c (remove_output_file): Fix typo.
61 gzip: fix bug in signal-handling fix
62 Problem reported by Johannes Przybilla (Bug#32375#26).
63 * gzip.c (volatile_strcpy): Source is now pointer-to-volatile too.
64 (remove_output_file): Copy remove_ofname to a private nonvolatile
65 copy so that it can be passed to xunlink safely.
67 2018-08-06 Paul Eggert <eggert@cs.ucla.edu>
69 Fix some theoretical races in signal handling
70 Problem reported by Johannes Przybilla (Bug#32375).
72 * bootstrap.conf (gnulib_modules): Add sigaction.
73 * gzip.c (SA_NOCLDSTOP, sigprocmask, sigset_t)
74 (siginterrupt) [!SA_NOCLDSTOP]: Remove; Gnulib not supplies these.
75 (remove_ofname): New var.
76 (volatile_strcpy): New function.
77 (create_outfile): Use it.
78 (install_signal_handlers, abort_gzip_signal): Assume sigaction.
79 (remove_output_file): New arg SIGNALS_ALREADY_BLOCKED.
80 All uses changed. Avoid unnecessary (and racy) call
81 to sigprocmask if this new arg is set.
82 (abort_gzip_signal): Assume C89 or better for signal handler type.
83 * gzip.h (RETSIGTYPE): Remove.
84 * lib/.gitignore, m4/.gitignore:
85 Add files brought in by Gnulib sigaction module. Sort.
87 2018-08-04 Paul Eggert <eggert@cs.ucla.edu>
89 gzip: port better to mingw again
90 Problem reported by Bdale Garbee (Bug#32305#8).
91 * gzip.c (do_chown): Use HAVE_FCHOWN || HAVE_CHOWN,
92 which is configured, instead of DO_CHOWN, which is not.
94 2018-08-02 Paul Eggert <eggert@cs.ucla.edu>
96 gzip: make the output more reproducible
97 Problem reported by Bernhard M. Wiedemann (Bug#32342).
99 * doc/gzip.texi (Overview, Invoking gzip): Document this.
100 * gzip.c (get_input_size_and_time): New function,
101 which implements the change.
102 (treat_stdin, treat_file): Use it.
103 * tests/reproducible: New test.
104 * tests/Makefile.am (TESTS): Add it.
106 2018-07-29 Paul Eggert <eggert@cs.ucla.edu>
108 gzip: port better to mingw
109 Problem reported by Bdale Garbee for Debian
110 * gzip.c (do_chown): Don't assume uid_t and gid_t.
112 2018-07-01 Jim Meyering <meyering@fb.com>
114 maint: update gnulib to latest; also update bootstrap and init.sh
116 2018-06-30 Jim Meyering <meyering@fb.com>
118 build: remove -Wformat-truncation=2 to avoid avoid false-positive
119 * configure.ac (GNULIB_WARN_CFLAGS): Add -Wformat-truncation=2,
120 to disable it when building gnulib with --enable-gcc-warnings.
121 This avoids what looks like a false positive from GCC 9:
122 strerror_r.c: In function 'rpl_strerror_r':
123 strerror_r.c:453:35: error: 'Unknown error ' directive output \
124 truncated writing 14 bytes into a region of size 2 \
125 [-Werror=format-truncation=]
126 snprintf (buf, buflen, "Unknown error %d", errnum);
128 In file included from /usr/include/stdio.h:862,
130 from strerror_r.c:29:
131 /usr/include/bits/stdio2.h:64:10: note: '__builtin___snprintf_chk' \
132 output between 16 and 26 bytes into a destination of size 2
133 return __builtin___snprintf_chk (__s, __n, __USE_FORTIFY_LEVEL - 1,
135 2018-01-15 Paul Eggert <eggert@cs.ucla.edu>
137 misc: update --version copyright
138 * gunzip.in, gzexe.in, gzip.c, zcat.in, zdiff.in, zforce.in, zgrep.in:
139 * zless.in, zmore.in, znew.in:
140 Update copyright year in --version output to 2018.
141 This part of the year-number update isn’t automated yet.
143 2018-01-07 Jim Meyering <meyering@fb.com>
145 maint: post-release administrivia
146 * NEWS: Add header line for next release.
147 * .prev-version: Record previous version.
148 * cfg.mk (old_NEWS_hash): Auto-update.
151 * NEWS: Record release date.
153 2018-01-06 Paul Eggert <eggert@cs.ucla.edu>
155 gzexe: port to macOS mktemp
156 Problem reported by Jeffrey Walton (Bug#30000).
157 * gzexe.in, zdiff.in, zgrep.in:
158 Don’t assume that mktemp works when given no arguments,
159 as this is not true for macOS. Instead, use a syntax
160 that should work with coreutils, NetBSD, and macOS.
161 While we’re in the neighborhood, be more consistent about how program
162 names are used in temporary file names. Also, watch out for TMPDIR
163 values that are not absolute file names, since they can cause problems
166 2018-01-03 Jim Meyering <meyering@fb.com>
168 maint: update gnulib and copyright dates for 2018
169 * gnulib: Update to latest.
170 * bootstrap: Update from gnulib.
171 * all files: Run "make update-copyright".
173 2017-12-16 Jim Meyering <meyering@fb.com>
175 build: update gnulib to latest
177 2017-11-24 Paul Eggert <eggert@cs.ucla.edu>
179 maint: zforce and zmore exit status cleanup
180 Problem reported by Nelson H. F. Beebe.
181 * zforce.in, zmore.in: On failure, exit with status 1 instead of
182 with whatever failing status that printf or mv exited with.
184 2017-11-23 Paul Eggert <eggert@cs.ucla.edu>
186 gzexe: ensure file always exists
187 * gzexe.in: When in a filesystem that does not support symlinks,
188 use rm+cp rather than mv to make backups, so that the argument
191 2017-11-23 Jim Meyering <meyering@fb.com>
193 build: update gnulib to latest
195 2017-11-16 Jim Meyering <meyering@fb.com>
197 gzexe: work even without the ability to make a hard link
198 * gzexe.in: When ln -f fails to create a "~"-style backup,
199 fall back to using mv -f.
200 Reported by Bruno Haible in http://debbugs.gnu.org/29266
202 2017-11-15 Jim Meyering <meyering@fb.com>
204 build: make each generated script unwritable
205 * Makefile.am (.in): Ensure that each generated script is unwritable.
206 This makes it less likely that someone (even me) will mistakenly
207 modify one of those generated files.
209 2017-11-13 Jim Meyering <meyering@fb.com>
211 zless, znew: exit 1 upon --help or --version write failure
212 * zless.in: Exit 1 upon --help or --version write error.
215 2017-11-12 Paul Eggert <eggert@cs.ucla.edu>
217 maint: script diagnostics status cleanup
218 Problem reported by Bruno Haible (Bug#29266#20).
219 * NEWS: Mention this.
220 * gunzip.in, gzexe.in, zcat.in, zcmp.in, zdiff.in, zforce.in:
221 * zgrep.in, zless.in, zmore.in, znew.in:
222 Use printf instead of echo if the argument might contain ‘\’, at
223 least in theory. Don’t assume printf exits with status 1 on
224 failure; it might be some other positive status.
225 * gzexe.in: Use printf consistently instead of echo, and
226 proscribe it instead of echo.
228 tests: don’t be so strict about timestamps
229 * tests/timestamp: We’ve had many false alarms about timestamps
230 that are not gzip problems, but instead are problems with ‘touch’.
231 Attempt to work around them by not trusting ‘touch’ so much.
232 Problems and parts of solutions proposed by Bruno Haible.
234 2017-11-10 Paul Eggert <eggert@cs.ucla.edu>
236 build: update gnulib submodule to latest
238 2017-11-09 Jim Meyering <meyering@fb.com>
240 gnulib: update to latest
242 maint: use noreturn, not ATTRIBUTE_NORETURN
243 Use gnulib's stdnoreturn module so we can include
244 <stdnoreturn.h> and the "noreturn" helper macro, thus
245 replacing the definition and uses of ATTRIBUTE_NORETURN.
246 * bootstrap.conf (gnulib_modules): Add stdnoreturn.
247 * gzip.h (ATTRIBUTE_NORETURN): Remove definition.
248 Include stdnoreturn.h and use "noreturn" for each
249 ATTRIBUTE_NORETURN-adorned function declaration.
250 * gzip.c (do_exit, try_help): Use "noreturn".
252 tests: unpack-invalid: correct and clean up a test
253 * tests/unpack-invalid: There was a logic error that would have
254 caused this test to ignore a failure if first iteration of the
255 loop set fail=1 and the second one reset it to 0. Also, use
256 "returns_ 1 ...", to require an exit status of 1.
258 2017-11-07 Paul Eggert <eggert@cs.ucla.edu>
260 gzip: diagnose out-of-range MTIME
261 This seems to be the problem reported by Bruno Haible for GNU/Hurd
262 i386 with touch 8.26 and glibc 2.24 (Bug#29033#20).
263 * NEWS: Document this.
264 * gzip.c (get_method): If MTIME is out of range for
265 this platform, warn and substitute the nearest in-range
266 value, instead of silently ignoring it.
267 (do_list): Remove no-longer-needed test for unknown time stamp.
269 2017-11-06 Paul Eggert <eggert@cs.ucla.edu>
271 misc: diagnose year-2038 configuration problems
272 * bootstrap.conf (gnulib_modules): Add year2038.
273 * m4/.gitignore: Add year2038.m4[
275 maint: remove IMPORT_FROM_GETTEXT
276 * bootstrap.conf (IMPORT_FROM_GETTEXT): Remove.
277 This is a relic from older Gnulib, and has no effect now.
279 2017-10-29 Jim Meyering <meyering@fb.com>
281 tests/unpack-valid: port to printf that do not grok hex
282 Many versions of printf do not handle hexadecimal in a format string,
283 so this test would fail.
284 * tests/init.cfg (hex_printf_): Copied from grep's tests/init.cfg.
285 * tests/unpack-valid: Use hex_printf_.
286 Reported by Bruno Haible in https://bugs.gnu.org/29033#26
288 gnulib: update to latest; also update tests/init.sh from gnulib
290 gzip: fix bug with any upper case custom ('-S'-specified) suffix
291 Any user-specified suffix with an upper case
292 letter would fail to match desired file.
293 * gzip.c (get_suffix): First, arrange to have only one return
294 point rather than two. Put a lower-cased (just-malloc'd) copy
295 of z_suffix in the suffix vector, and free it before returning.
296 * tests/upper-suffix: New file.
297 * tests/Makefile.am (TESTS): Add it.
299 Reported by meo@xenialab.it in https://bugs.gnu.org/29006
301 2017-10-16 Paul Eggert <eggert@cs.ucla.edu>
303 gzip: fix bug in unpack EOB check
304 Problem reported by Vidar Holen (Bug#28861).
306 * tests/unpack-valid: New test.
307 * tests/Makefile.am (TESTS): Add it.
308 * unpack.c (build_tree): Report an error if Huffman tree has
310 * unpack.c (unpack): Fix check for EOB.
311 Remove now-unnecessary check for code out of range.
313 2017-09-19 Jim Meyering <meyering@fb.com>
315 maint: fix "make syntax-check": remove useless HAVE_UTIME_H definitions
316 * tailor.h: Don't define HAVE_UTIME_H.
318 maint: avoid "make syntax-check" failure due to old-NEWS modification
319 * cfg.mk (old_NEWS_hash): Update, to reflect recent NEWS correction.
321 2017-09-19 Paul Eggert <eggert@cs.ucla.edu>
323 gzexe: improve usage diagnostic
324 * gzexe.in (usage): Reword for clarity (Bug#28514).
326 misc: update --version copyright
327 * gunzip.in, gzexe.in, gzip.c, zcat.in, zdiff.in, zforce.in, zgrep.in:
328 * zless.in, zmore.in, znew.in: Update copyright year in --version
331 maint: prefer HTTPS to HTTP, FTP in URLs
333 maint: copy bootstrap from Gnulib
335 maint: port to GCC 7.2
336 * configure.ac (WERROR_CFLAGS): Avoid -Wduplicated-branches.
337 * tailor.h (FALLTHROUGH): New macro, taken from Emacs.
338 * gzip.c (main): Use it.
340 maint: update .gitignore for recent Gnulib
342 build: update gnulib submodule to latest
344 2017-05-07 Jim Meyering <meyering@fb.com>
346 maint: also distribute a zip-compressed tarball
347 * configure.ac (AM_INIT_AUTOMAKE): Add dist-zip, for
348 those lacking gzip, 7zip, etc. Suggested by Karl Berry in
349 https://bugs.gnu.org/25538.
351 2017-03-13 Paul Eggert <eggert@cs.ucla.edu>
353 gzip: port zdiff, zless to Busybox
354 Problem reported by Denys Zagorui (Bug#26088).
355 * tests/zdiff: Check that diff uses POSIX-format output.
356 * zless.in (less_version): Don't exit merely because 'less -V'
357 fails; instead, assume 'less' is compatible with an old version of
358 the original 'less'. Busybox 'less -V' fails, but apparently its
359 'less' works anyway somehow.
361 2017-02-06 Jim Meyering <meyering@fb.com>
363 tests: avoid failure when running with no tty
364 * tests/help-version (zcat_setup): Export TERM=dumb, to avoid zless
365 malfunction. Reported by Assaf Gordon in https://bugs.gnu.org/25636#8
367 gnulib: update to latest; and tests/init.sh and bootstrap
369 maint: change "time stamp" to "timestamp" globally
370 This avoids a new syntax-check failure.
371 * ChangeLog-2007: Perform that change.
373 * algorithm.doc: Likewise.
374 * doc/gzip.texi: Likewise.
375 * gunzip.in: Likewise.
379 * m4/.gitignore: Likewise.
380 * sample/ztouch: Likewise.
381 * tests/timestamp: Likewise.
385 * cfg.mk: Update the old news hash accordingly.
387 2017-01-01 Jim Meyering <meyering@fb.com>
389 maint: tweak a distcheck rule
390 * dist-check.mk (my-distcheck): Don't use --disable-nls.
391 That option is now unrecognized.
393 maint: update gnulib and copyright dates for 2017
394 * gnulib: Update to latest.
395 * all files: Run "make update-copyright".
397 2016-11-08 Jim Meyering <meyering@fb.com>
399 maint: use "returns_" rather than explicit comparison with "$?"
400 * tests/zdiff: Use "returns_ 1" rather than testing $? = 1.
401 * tests/hufts: Likewise.
402 * tests/timestamp: Likewise, but s/1/2/.
404 2016-11-04 Paul Eggert <eggert@cs.ucla.edu>
406 gzip: minor time stamp cleanups
407 * NEWS: Document this.
408 * gzip.c (get_method): Do not warn about MTIME out of range.
409 This should avoid useless chatter on hosts with 32-bit time_t
410 after the year 2038 (!).
411 (do_list): Do not pass junk time stamp to localtime.
412 (copy_stat): Do not report "time stamp restored" if restoration
415 gzip: --no-time cleanup
416 Problem reported by Jim Meyering (Bug#24826).
417 * gzip.c (longopts): Remove non-working no-time entry.
418 (help) [UNDOCUMENTED]: Don't document it.
420 gzip --no-name: avoid spurious warning
421 Problem reported by Jim Meyering (Bug#24826).
422 * tests/timestamp: Add a test from Jim Meyering to exercise the fix
423 * zip.c (zip): Treat unknown time stamps as 0.
425 2016-10-24 Jim Meyering <meyering@fb.com>
427 maint: update .gitignore files to ignore more generated files
429 2016-10-02 Jim Meyering <meyering@fb.com>
431 maint: avoid unwarranted "make syntax-check" failure
432 * tests/timestamp: Reorder "rm" arguments so the doubled-word
433 syntax-check rule does not detect a false positive "in in" here.
435 gnulib: update to latest
437 2016-09-07 Paul Eggert <eggert@cs.ucla.edu>
439 * doc/gzip.texi: Fix off-by-one timestamp.
441 2016-09-06 Paul Eggert <eggert@cs.ucla.edu>
443 gzip: fix some Y2038 etc. bugs
444 * NEWS: Document this.
445 * gzip.c (get_method): Warn about out-of-range MTIME,
446 and ignore it instead of relying on possibly-undefined behavior.
447 * tests/Makefile.am (TESTS): Add timestamp.
448 * tests/timestamp: New test.
449 * zip.c (zip): Warn about out-of-range file time stamp.
451 2016-08-29 Jim Meyering <meyering@fb.com>
453 maint: fix gzip-specific syntax-check rule
454 * cfg.mk (sc_gzip_copyright_check): This rule had two problems.
455 It was failing erroneously (the copyright date in gzip.c is fine),
456 yet it was complaining. The first problem is that the rule's
457 diagnostic mentioned the wrong file: lib/version-etc.c, rather than
458 ./gzip.c. The second problem is that it specified this file name
459 via "in_files" rather than the "in_vc_files" variable.
461 2016-06-12 Paul Eggert <eggert@penguin.cs.ucla.edu>
463 gzip: fix port to Atari by not defining ASMV
464 Problem reported by Helmut Karlowski in: http://bugs.gnu.org/23751
465 * tailor.h (ASMV) [ATARI || atarist]: Do not define.
467 2016-06-12 Paul Eggert <eggert@cs.ucla.edu>
469 gzip: drop mentions of Amiga, VMS
470 These platforms were not supported anyway, and their code was
471 suffering from bitrot. This patch may also fix some file name
472 glitches on MS-Windowsish platforms.
473 * bootstrap.conf (gnulib_modules): Add dosname.
474 * gzip.c: Include dosname.h.
475 (shorten_name, treat_dir): Use last_component rather than looking
476 at path separators by hand.
477 * tailor.h: Remove sections on porting to VMS and to Amiga,
478 since dosname.h doesn't support these platforms anyway.
479 (PATH_SEP2, PATH_SEP3, STDC_HEADERS, SUFFIX_SEP, RECORD_IO)
480 (HAVE_CHOWN, HAVE_LSTAT, HAVE_SYS_DIR_H, direct): Remove. All
481 uses removed. Many uses replaced by calls to ISSLASH and/or
484 2016-04-29 Jim Meyering <meyering@fb.com>
486 maint: arrange for better URLs in generated announcement message
487 * cfg.mk (url_dir_list): Define. I had been correcting the generated
488 URLs by hand, just before the announcement. This is better.
490 2016-04-26 Jim Meyering <meyering@fb.com>
492 maint: post-release administrivia
493 * NEWS: Add header line for next release.
494 * .prev-version: Record previous version.
495 * cfg.mk (old_NEWS_hash): Auto-update.
498 * NEWS: Record release date.
500 gnulib: update to latest
502 2016-04-19 Paul Eggert <eggert@cs.ucla.edu>
504 gzip: simplify by closing ourselves
505 This simplifies the previous fix, by avoiding the use of the
506 closein module. That module was problematic, as gzip normally
507 does not use stdio for output and never uses it for input.
508 Also, it is a heavyweight module, as it drags many files into lib
509 (c-ctype.c, c-ctype.h, closein.c, closein.h, closeout.c, closeout.h,
510 close-stream.c, close-stream.h, config.charset, c-strcasecmp.c,
511 c-strcaseeq.h, c-strcase.h, c-strncasecmp.c, fpending.c, fpending.h,
512 freadahead.c, freadahead.h, localcharset.c, localcharset.h, mbrtowc.c,
513 mbsinit.c, quotearg.c, quotearg.h, quote.h, ref-add.sin, ref-del.sin,
514 streq.h, wctype-h.c, wctype.in.h) and into m4 (closein.m4, closeout.m4,
515 close-stream.m4, codeset.m4, configmake.m4, fpending.m4, freadahead.m4,
516 glibc21.m4, localcharset.m4, locale-fr.m4, locale-ja.m4, locale-zh.m4,
517 mbrtowc.m4, mbsinit.m4, mbstate_t.m4, quotearg.m4, wctype_h.m4),
518 and these files are thus no longer needed.
519 * bootstrap.conf (gnulib_modules): Remove closein.
520 * gzip.c: Don't include closein.h.
521 (stdin_was_read): New static var.
522 (main): Don't use close_stdin.
523 Invoke finish_out to exit after outputting via stdio's stdout.
524 Close stdin after reading it.
525 Restore previous way of closing stdout.
526 (treat_stdin): Record that stdin was read.
527 (finish_out): New function.
529 gzip: fix bug with -l output to pipes
530 Problem reported by Christian Franke via Eric Blake in:
531 http://bugs.gnu.org/23314
532 * NEWS: Mention this.
533 * gzip.c (main): Do not close stdout twice when given -l.
534 Instead, -l now just fflushes stdout, so that fdatasync
535 can synchronize it if --synchronize is also specified.
536 * tests/list: New test case.
537 * tests/Makefile.am (TESTS): Add it.
539 2016-03-28 Paul Eggert <eggert@cs.ucla.edu>
541 Port to Oracle Solaris Studio 12.4
542 Problem reported by Kiyoshi KANAZAWA in: http://bugs.gnu.org/23133
543 * NEWS: Document this.
544 * configure.ac (ASMV): Do not define if NO_ASM is
545 anywhere in DEFS; it doesn't need to be surrounded by white space.
546 * lib/match.c: Do not use x86 version if __x86_64__ is defined.
548 2016-03-27 Jim Meyering <meyering@fb.com>
550 maint: post-release administrivia
551 * NEWS: Add header line for next release.
552 * .prev-version: Record previous version.
553 * cfg.mk (old_NEWS_hash): Auto-update.
556 * NEWS: Record release date.
558 2016-03-26 Paul Eggert <eggert@cs.ucla.edu>
561 Problem reported by Assaf Gordon in: http://bugs.gnu.org/23107#13
562 * gzexe.in, zdiff.in, zgrep.in: Don't rely on mktemp -t,
563 as it has a different meaning in NetBSD.
565 * tests/init.sh: Sync from Gnulib.
567 Port to Alpine Linux which uses Busybox
568 * Makefile.am (check-local): Use plain diff rather than
570 2016-03-24 Jim Meyering <meyering@fb.com>
572 gzip: also honor GZIP=--rsyncable
573 * gzip.c (main): Also accept --rsyncable when it is specified
574 via the GZIP environment variable.
575 I noticed this when gzip's "make dist" failed because maint.mk
576 detected that gzip now honors --rsyncable, yet when it set GZIP_ENV
577 to include that, and that propagated via automake-generated code
578 to the GZIP setting used in the "make dist" rule, there, it was not
579 honored, and caused "make dist" to fail.
581 2016-03-21 Paul Eggert <eggert@cs.ucla.edu>
583 Fix typo in previous patch
585 Port to Solaris 11 /bin/sh
586 * m4/shell.m4 (AC_PROG_SHELL): Reject Solaris 11 /bin/sh.
587 A problem was reported by Nelson H. F. Beebe for OpenIndiana.
588 I reproduced a problem with different symptoms on Solaris 11.
589 Switching to Bash fixed it, and I hope this fixes it for
590 OpenIndiana too, since both problems appear to be shell-related.
592 2016-03-18 Paul Eggert <eggert@cs.ucla.edu>
594 zgrep: with -f SPECIAL, read SPECIAL just once
595 Problem reported by Fulvio Scapin in: http://bugs.gnu.org/22945
596 * NEWS: Document this.
597 * tests/zgrep-f: Add a test.
598 Adjust a test to cover the case of more than one line in -f's input.
599 * zgrep.in (with_filename): With -f FILE, if FILE is stdin or not
600 a regular file, copy it into a temporary and use the temporary.
602 2016-03-15 Paul Eggert <eggert@cs.ucla.edu>
604 gzip: port to AIX 7.1 + xlc V12.1
605 * inflate.c, unlzw.c, util.c: Include tailor.h after including any
606 system include file that might in turn include signal.h for the
607 first time, so that SIGPIPE is not #defined to 0 prematurely,
608 which clashes with signal.h's SIGPIPE.
610 2016-03-15 Jim Meyering <meyering@fb.com>
612 gnulib: update to latest
614 maint: don't ignore gitlog-to-changelog failure
615 * Makefile.am (gen-ChangeLog): Don't ignore failure of
616 gitlog-to-changelog. This syncs to coreutils' copy of this rule.
618 2016-03-06 Paul Eggert <eggert@cs.ucla.edu>
621 * gzip.c (do_list): Use 2D array of char for month abbreviations,
622 as this is clearer anyway, and it pacifies Clang. Problem reported
623 by Assaf Gordon in: http://bugs.gnu.org/22900#40
625 2016-03-06 Jim Meyering <meyering@fb.com>
627 tests: port to systems for which ":" is not the PATH separator
628 * Makefile.am (new_path): New variable.
629 (check-local): Use $(PATH_SEPARATOR) rather than a literal ":",
630 to avoid "make syntax-check" failure.
632 2016-03-06 Paul Eggert <eggert@cs.ucla.edu>
634 doc: minor --rsyncable doc fixes
635 * doc/gzip.texi (Sample): Mention --rsyncable.
636 * gzip.c (help): Sort and do not capitalize the new --rsyncable
639 gzip: minor zgrep cleanup
640 * zgrep.in: Simplify previous change.
642 gzip: port zgrep to Solaris 11.2
643 Problem reported by Assaf Gordon in: http://bugs.gnu.org/22900#11
644 * zgrep.in: Port to Solaris 11.2 /bin/sh (ksh 93u 2011-02-08),
645 where $? is 256+SIG when a process was killed with signal SIG, and
646 where 'exit 257' is equivalent to 'exit 1'. Apparently some other
647 sh implementations use 256+128+SIG. So, instead of using plain
648 'exit $?', use the equivalent of 'exit ((128 * (128 <= $?)) + $? %
649 128)' within the script, and use the equivalent of 'kill -$($? %
650 128)' at the top level if the exit status is 128 or more.
652 gzip: remove --__bindir
653 * NEWS: Document this.
654 * gzexe.in, gunzip.in, zcat.in, zcmp.in, zdiff.in, zegrep.in:
655 * zfgrep.in, zforce.in, zgrep.in, zless.in, zmore.in, znew.in:
656 Remove support for undocumented --__bindir option. Callers can
657 set PATH instead; that's less error-prone. This fixes some
658 'make check' failures on my Solaris 11 box, which occurred
659 because the test scripts were mistakenly testing the installed
660 gzip rather than the gzip in the working directory.
661 * Makefile.am (.in): Don't replace bindir.
662 (check-local): Set PATH instead of using --__bindir.
663 * tests/help-version (gunzip_setuphelp, gzexe_setuphelp)
664 (zcat_setuphelp, zcmp_setuphelp, zdiff_setuphelp)
665 (zegrep_setuphelp, zfgrep_setuphelp, zforce_setuphelp)
666 (zgrep_setuphelp, zless_setuphelp, zmore_setuphelp)
667 (znew_setuphelp): Remove. All uses removed.
668 (lbracket_setup): Default args to empty.
670 2016-03-04 Jim Meyering <meyering@fb.com>
672 tests: fix "make check" failure on AIX 7.1
673 * tests/Makefile.am (TESTS_ENVIRONMENT): Modernize:
674 remove unused shell_or_perl_ function, and use an
675 export_with_values function as grep does, to remove
676 a lot of duplication.
677 Reported by Assaf Gordon in http://debbugs.gnu.org/22900
679 2016-03-02 Rusty Russell <rusty@rustcorp.com.au>
681 gzip: support the --rsyncable option
682 * deflate.c: Include verify.h.
683 (RSYNC_WIN, RSYNC_SUM_MATCH): Define.
684 (rsync_sum, rsync_chunk_end): Declare file-scoped globals.
685 (lm_init): Initialize globals.
686 (fill_window): Update rsync_chunk_end.
687 (rsync_roll): New function.
688 (RSYNC_ROLL): New macro.
689 (FLUSH_BLOCK): Update for new "pad" parameter.
690 (deflate_fast): Use RSYNC_ROLL and flush/pad.
692 * trees.c (flush_block): Add "pad" parameter.
693 * gzip.c (rsync): New global.
694 (RSYNCABLE_OPTION, longopts, help): Add the option.
695 (main): Set the new global.
696 * gzip.h (rsync): Declare new global.
697 (flush_block): Update prototype.
698 * doc/gzip.texi: Document it.
700 * bootstrap.conf: Use verify module.
701 * NEWS (New feature): Mention it.
702 * Makefile.am (check-local): Add tests and use AM_V__* command-
703 hiding opions. Reported against Debian here:
704 https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=118118
706 2016-02-28 Jim Meyering <meyering@fb.com>
708 maint: dist-check.mk: remove .deps dirs before comparing
709 "make distcheck" with automake-from-trunk would fail like this:
711 Only in /gz/tests/torture/gzip/test/gzip-1.6.42-9d47.old: .deps
712 Only in /gz/tests/torture/gzip/test/gzip-1.6.42-9d47.old/lib: .deps
713 Only in /gz/tests/torture/gzip/test/gzip-1.6.42-9d47.old/lib/glthread: .deps
714 * dist-check.mk (my-distcheck): Remove all .deps directories before
715 comparing the two hierarchies.
717 2016-02-28 Paul Eggert <eggert@cs.ucla.edu>
719 misc: update --version copyright
720 * gunzip.in, gzexe.in, zcat.in, zdiff.in, zforce.in, zgrep.in:
721 * zless.in, zmore.in, znew.in: Update copyright year in --version
724 gzip: new option --synchronous
725 This follows up on the earlier patch to avoid data loss near the
726 system crashes. It makes the new behavior optional, with the
727 default off. See: http://bugs.gnu.org/22768
728 * NEWS, doc/gzip.texi (Sample, Invoking gzip), gunzip.in (usage):
729 * gzip.1, zcat.in (usage):
731 * gzip.c (synchronous): New static var.
732 (SYNCHRONOUS_OPTION): New constant.
733 (longopts, help, main, treat_file): Add support for --synchronous.
735 gzip: use constants, not fileno
736 * gzip.c (main, treat_stdin, treat_file, get_method)
737 (check_ofname): Prefer STDIN_FILENO to fileno (stdin),
738 and similarly for STDOUT_FILENO.
740 gzip: fdatasync output dir before unlinking
741 This follows up on the earlier patch to avoid data loss near
742 the system crashes. See: http://bugs.gnu.org/22768
743 * bootstrap.conf (gnulib_modules): Add dirname-lgpl, fdatasync,
744 openat-safer, unistd-safer, unlinkat.
745 * gzip.c: Include stddef.h, dirname.h.
746 Include fcntl--.h instead of fcntl-safer.h.
747 (RW_USER): Remove; no longer needed.
748 (dfname, dfd): New static vars.
749 (dot): New static const.
750 (atdir_eq, atdir_set): New functions.
751 (treat_file): Also fdatasync the output directory, if !keep.
752 (treat_file, create_outfile, open_and_stat):
753 Use dir fd for unlinkat and openat, if possible.
754 (open_and_stat): Omit mode argument, since it was always the
755 same. All callers changed.
756 * lib/.gitignore, m4/.gitignore: Add new gnulib files.
757 * tailor.h (PROTO, NO_STDIN_FSTAT, OPEN): Remove. Remove MACOS
758 section, as this stuff would not work anyway now, and circa 2001
759 Apple stopped supporting Mac OS 9 and earlier.
760 * zip.c: Do not include unistd.h and fcntl.h, as this file does
761 not directly use any symbols defined by those headers.
763 2016-02-22 Paul Eggert <eggert@cs.ucla.edu>
765 fsync output file before closing
766 Problem reported by Yanyan Jiang 蒋炎岩 in: http://bugs.gnu.org/22768
767 * NEWS: Document this.
768 * bootstrap.conf (gnulib_modules): Add fsync.
769 * gzip.c (treat_file): Call fsync just before closing the output.
770 * lib/.gitignore, m4/.gitignore: Add fsync-related gnulib files.
772 2016-01-22 Jason Leschnik <jason@leschnik.me>
774 doc: correct a diagnostic in man page to match actual
775 * gzip.1: s/no change/unchanged/
776 This addresses http://debbugs.gnu.org/22413
778 2016-01-01 Jim Meyering <meyering@fb.com>
780 maint: update copyright year, bootstrap, init.sh
781 Run "make update-copyright" and then...
783 * gzip.c: Transform the copyright notice via s/2015/2016/.
784 * gnulib: Update to latest.
785 * tests/init.sh: Update from gnulib.
786 * bootstrap: Likewise.
788 2015-11-01 Jim Meyering <meyering@fb.com>
790 maint: avoid three warnings from the very latest gcc-built-from-git
791 * unzip.c (unzip): Correct two format strings to match the types of the corresponding arguments.
792 * unlzw.c (unlzw): Cast an "int" to unsigned to match expected type of %x.
794 2015-08-24 Jim Meyering <meyering@fb.com>
796 maint: adjust copyright notices in *.in files to be consistent
797 The copyright year ranges in *.in files were not being updated,
798 because of a missing ", Inc." suffix. Add that, run
799 run "make udpate-copyright", and ensure 2010..2015 year
801 * gunzip.in: Update copyright notice and year ranges.
802 * gzexe.in: Likewise.
804 * zdiff.in: Likewise.
805 * zforce.in: Likewise.
806 * zgrep.in: Likewise.
807 * zless.in: Likewise.
808 * zmore.in: Likewise.
811 2015-08-24 Jim Meyering <meyering@fb.com>
813 build: avoid -Wshift-negative-value warning
814 Configured with --enable-gcc-warnings, a gcc-6.x build would fail with this:
816 gzip.c:118:32: error: left shift of negative value
817 #define OFF_T_MIN (~ (off_t) 0 << (sizeof (off_t) * CHAR_BIT - 1))
819 * gzip.c [OFF_T_MAX]: Define in terms of TYPE_MAXIMUM, not OFF_T_MIN.
820 [OFF_T_MIN]: Remove now-unused definition.
821 Include "intprops.h" for definiton of TYPE_MAXIMUM.
822 * bootstrap.conf (gnulib_modules): Add intprops.
824 2015-07-30 Jim Meyering <meyering@fb.com>
826 maint: remove dead code
827 This package has not been compilable with -DCRYPT
828 since commit v1.4-82-g9d1b943. Remove final vestiges.
829 * bits.c (copy_block) [CRYPT]: Remove #ifdef'd code.
830 * inflate.c (NEXTBYTE) [CRYPT]: Likewise.
831 Prompted by a report from Flávio Medeiros
832 that HEADER and T might be used uninitialized.
834 2015-03-17 Paul Eggert <eggert@cs.ucla.edu>
836 gzip: make the GZIP env var obsolescent
838 * doc/gzip.texi (Environment, Tapes): Document this.
839 * gzip.c (args): Remove static var; no longer needed now that
840 'main' frees it. All uses removed.
841 (ENV_OPTION, shortopts): New constants.
842 (main): Warn about nontrivial uses of GZIP. Reject dangerous uses.
843 * tests/gzip-env: New test case.
844 * tests/Makefile.am (TESTS): Add it.
845 * util.c (add_envopt): Create new vector instead of adding to old
846 one. Only use changed.
848 2015-03-13 Paul Eggert <eggert@cs.ucla.edu>
850 maint: adjust to recent gnulib
851 * doc/.gitignore: Add gendocs_template_min.
852 * lib/.gitignore: Add assure.h.
854 2015-02-08 Jim Meyering <meyering@fb.com>
856 maint: ensure that --version's copyright date is current
857 * cfg.mk (sc_gzip_copyright_check): Ensure we keep this copyright
858 year number up to date. Reported by Paul Eggert.
859 * gzip.c (license_msg): Include only the current year number,
860 as is done in nearly every other program.
862 gnulib: update to latest
864 2015-01-01 Jim Meyering <meyering@fb.com>
866 maint: update copyright year ranges to include 2015; update gnulib
868 2014-11-10 Jim Meyering <meyering@fb.com>
870 maint: move new NEWS entry into block for upcoming release
871 * NEWS: Move the latest NEWS entry from the block for gzip-1.6
872 into the block for the upcoming release.
874 2014-11-10 Paul Eggert <eggert@cs.ucla.edu>
876 gzip: adjust -v output when -k is also specified
877 Problem reported by Eric Benoit in: http://bugs.gnu.org/16401
878 * gzip.c (treat_file): When keeping a file, don't say it's replaced.
879 * NEWS: Document this.
880 * tests/keep: Test this.
882 2014-11-10 Jim Meyering <meyering@fb.com>
884 maint: enable more syntax checks
885 * cfg.mk (local-checks-to-skip): Remove several rule names from this
886 list, thus enabling the corresponding checks. To fix some, I made
887 syntactic changes to source files. In other cases, I exempted certain
888 files from the checks.
889 Add exemptions for these:
890 sc_prohibit_atoi_atof = ^(gzip|sample/sub)\.c$$
891 sc_space_tab = ^lib/match\.c$$
892 sc_useless_cpp_parens = ^(lib/match\.c|tailor\.h)$$
893 * configure.ac: Add quotes to fix under-quoting.
894 * deflate.c: Remove unnecessary cpp parentheses.
895 * tests/Makefile.am (TEST_ENVIRONMENT): Remove space-before-TAB.
896 * unlzw.c: Change some TABs to spaces.
898 maint: avoid false positive match in check for double semicolon
899 * cfg.mk (exclude_file_name_regexp--sc_prohibit_double_semicolon):
900 Exempt the file, lib/match.c, from gnulib's new double-semicolon
903 gnulib+bootstrap: update to latest
904 * gnulib: Update the submodule.
905 * bootstrap: Update from gnulib.
907 2014-10-10 Paul Eggert <eggert@cs.ucla.edu>
909 tests: use local dir for output
910 Reported by Kiyoshi KANAZAWA in: http://bugs.gnu.org/18679
911 * tests/unpack-invalid: Use local directory, not /tmp, for output.
913 2014-08-10 Paul Eggert <eggert@cs.ucla.edu>
915 gzip: fix --suffix=z bug (Bug#18239)
916 * gzip.c (get_suffix): Put --suffix string at the end
917 of the list of suffixes if it is a suffix of one one them.
918 * tests/z-suffix: New file.
919 * tests/Makefile.am (TESTS): Add it.
921 2014-06-12 Paul Eggert <eggert@cs.ucla.edu>
923 zgrep: exit with status 0 if a file matches and there's no trouble
924 Reported by Pavel Raiskup in: http://bugs.gnu.org/17760
925 * zgrep.in (res): Treat exit status 0 to be greater than 1.
926 Also, exit immediately on software configuration error.
928 2014-06-07 Paul Eggert <eggert@cs.ucla.edu>
930 doc: use UTF-8 in the manual
931 * doc/gzip.texi: Switch to UTF-8 encoding. Fix ASCIIisms.
932 Don't use @sc; plain caps are fine for GNU manuals.
934 maint: update .gitignore files
935 * lib/.gitignore, m4/.gitignore: Adjust to match current sources.
938 2014-06-07 Jim Meyering <meyering@fb.com>
940 maint: udpate all copyright notices via "make update-copyright"
942 maint: update copyright year range in gzip.texi
943 * doc/gzip.texi: Update copyright date.
945 maint: update gnulib to latest and adapt streamsavedir usage
946 * gnulib: Update module to latest.
947 * gzip.c (treat_dir): Gnulib's streamsavedir API has changed:
948 call it with a new argument, SAVEDIR_SORT_NONE, to retain the
951 2014-03-06 Paul Eggert <eggert@cs.ucla.edu>
953 zless: improve gzip failure checking, and port to new -V format
954 Problem reported by Jaroslaw Weglinski, and LESSOPEN change
955 suggested by Mark Nudelman, in: http://bugs.gnu.org/16951
956 This doesn't fix bug 16951 entirely, as 'less' needs to be changed
957 too, but it's a start.
958 * zless.in (check_exit_status): New var.
960 (use_input_pipe_on_stdin): Adjust to output format on Fedora 20,
961 where 'less -V' outputs "less 458 (POSIX regular expressions)"
964 2013-10-24 Paul Eggert <eggert@cs.ucla.edu>
966 gzip: fix permissions issue on Solaris-like systems
967 I.e., on systems that let users give files away.
968 * gzip.c (do_chown): New function.
969 (copy_stat): Use it, to change the group, then the permissions,
970 then the owner. Idea suggested by Vladimir Marek in
971 <http://bugs.gnu.org/15672#11>
973 2013-10-03 Paul Eggert <eggert@cs.ucla.edu>
975 znew: avoid denial-of-service issue
976 Reported by Rich Burridge in <http://bugs.gnu.org/15522>.
977 * znew.in: Rewrite to avoid the need for a temporary file in /tmp.
978 That way, we avoid the need for set -C
979 and worrying about denial of service.
980 Use touch -r and chmod --reference rather than cpmod.
981 Assume cp -p works, as it's now universal.
982 Quote 'echo' args better, while we're at it.
983 (warn, tmp, cpmod, cpmodarg): Remove.
984 (GZIP): Unset, so that we needn't test for gzip extension.
985 (ext): Now always '.gz'.
986 * znew.1: Document the change of implementation assumptions.
988 2013-06-19 Paul Eggert <eggert@cs.ucla.edu>
990 Fix spelling typo in newly-added comment.
992 tests: zgrep-signal race condition fix
993 * tests/zgrep-signal: Check that Perl supports dup2.
994 (exec_with_SIGPIPE_SIGDFL): Remove.
995 (write_to_dangling_pipe): Simplify by moving more of it into Perl.
996 Fix race condition, where subcommand writes to a pipe before the ":"
997 command exits. Problem reported by Thorsten Glaser in
998 <http://lists.gnu.org/archive/html/bug-gzip/2013-06/msg00028.html>.
1000 2013-06-12 Paul Eggert <eggert@cs.ucla.edu>
1002 zgrep: usage should say which grep options are not supported
1003 * zgrep.in (usage): Document which grep options are not supported.
1004 Problem reported by Liron Paryente in
1005 <http://lists.gnu.org/archive/html/bug-grep/2013-06/msg00005.html>.
1007 2013-06-11 Paul Eggert <eggert@cs.ucla.edu>
1009 gzip: port util.c to Compaq C V6.5-303
1010 * util.c (crc_32_tab): Move definition to front, since this
1011 compiler doesn't allow declarations of static arrays with
1012 incomplete types. Problem reported by Steven M. Schweda in
1013 <http://lists.gnu.org/archive/html/bug-gzip/2013-06/msg00010.html>.
1015 tests: zgrep-context assumes grep knows context
1016 * tests/Makefile.am (TESTS_ENVIRONMENT): Pass GREP too.
1017 * tests/zgrep-context: Check that the underlying grep supports
1018 context options. Problem reported by Steven M. Schweda in
1019 <http://lists.gnu.org/archive/html/bug-gzip/2013-06/msg00010.html>.
1021 doc: zgrep exit status, unsupported options
1022 * zgrep.1 (EXIT STATUS, BUGS): New sections.
1023 Problem reported by Bdale Garbee in
1024 <http://lists.gnu.org/archive/html/bug-gzip/2013-06/msg00007.html>.
1026 maint: port to platforms lacking SIGPIPE
1027 * tailor.h (SIGPIPE): Define to 0 if not defined. This fixes a
1028 porting bug introduced as part of 2012-11-16 syntax-check cleanup.
1029 Problem reported by Bdale Garbee in
1030 <http://lists.gnu.org/archive/html/bug-gzip/2013-06/msg00006.html>.
1032 2013-06-09 Jim Meyering <meyering@fb.com>
1034 maint: post-release administrivia
1035 * NEWS: Add header line for next release.
1036 * .prev-version: Record previous version.
1037 * cfg.mk (old_NEWS_hash): Auto-update.
1040 * NEWS: Record release date.
1042 build: avoid automake warning that suggests use of subdir-objects
1043 * configure.ac (AM_INIT_AUTOMAKE): Use the subdir-objects option.
1045 build: avoid warning about deprecated use of automake's ACLOCAL_AMFLAGS
1046 * Makefile.am (ACLOCAL_AMFLAGS): Don't use this deprecated variable.
1047 * configure.ac: Do this instead: AC_CONFIG_MACRO_DIR([m4]).
1049 build: use more portable shell syntax in search of working shell
1050 * m4/shell.m4: Adjust sh/case syntax not to evoke a syntax
1051 error from Solaris 10's /bin/sh.
1053 build: update gnulib to latest, and bootstrap
1055 2013-05-28 Jim Meyering <meyering@fb.com>
1057 tests: exercise the new --keep option
1058 * tests/keep: New file.
1059 * tests/Makefile.am (TESTS): Add it.
1061 2013-05-28 Rodrigo Campos <rodrigo@sdfg.com.ar>
1063 gzip: add "--keep" option to retain (don't delete) input files
1064 gzip now accepts the --keep (-k) option, for consistency with tools
1065 like xz, lzip and bzip2. With this option, gzip no longer removes
1066 named input files when compressing and decompressing.
1067 * doc/gzip.texi: Document it.
1069 * gunzip.in: Likewise.
1071 * gzip.c: Add support for "--keep".
1073 2013-04-15 Paul Eggert <eggert@cs.ucla.edu>
1075 tests: redo patch for non-GNU gzip installed in /usr/local/bin
1076 Problem with previous patch reported by Antonio Diaz Diaz in
1077 <http://lists.gnu.org/archive/html/bug-gzip/2013-04/msg00011.html>.
1078 * tests/help-version (gunzip_setuphelp, gzexe_setuphelp)
1079 (zcat_setuphelp, zcmp_setuphelp, zdiff_setuphelp)
1080 (zegrep_setuphelp, zfgrep_setuphelp, zforce_setuphelp)
1081 (zgrep_setuphelp, zless_setuphelp, zmore_setuphelp)
1082 (znew_setuphelp): New functions, used when testing even --help.
1083 (zdiff_setup, zcat_setup, znew_setup, zgrep_setup, gzexe_setup):
1084 Use gzip_setuphelp to set --__bindir.
1086 2013-04-10 Paul Eggert <eggert@cs.ucla.edu>
1088 tests: work even if non-GNU gzip is installed in /usr/local/bin
1089 Problem reported by Antonio Diaz Diaz in
1090 <http://lists.gnu.org/archive/html/bug-gzip/2013-04/msg00004.html>.
1091 * tests/help-version (zdiff_setup, zcat_setup, znew_setup, zgrep_setup)
1092 (gzexe_setup): Pass --__bindir so that subsidiary programs are our
1093 own's, not /usr/local/bin's. This requires using 'eval' on the result.
1094 (zcmp_setup, gunzip_setup, zmore_setup, zless_setup, zforce_setup)
1095 (zegrep_setup, zfgrep_setup): Invoke one of the other setup functions,
1096 to make the patterns more obvious and simplify future maintenance.
1097 * zcmp.in, zegrep.in, zfgrep.in: Pass __bindir to subsidiary program.
1099 maint: adjust to Gnulib, Automake changes
1100 * .gitignore: Add *.trs.
1101 * lib/.gitignore: Add unused-parameter.h.
1103 tests: port to Solaris 10 /bin/sh
1104 * tests/Makefile.am (TESTS_ENVIRONMENT):
1105 Use "FOO=val; export FOO" rather than "export FOO=val",
1106 as the latter form doesn't work with Solaris /bin/sh.
1108 2013-02-25 Paul Eggert <eggert@cs.ucla.edu>
1110 gzip: port to DMF file systems
1111 * util.c (read_buffer): When reading a file with O_NONBLOCK, if
1112 the read fails with errno==EAGAIN, clear O_NONBLOCK and try again.
1113 Problem reported by Vitezslav Cizek in
1114 <http://lists.gnu.org/archive/html/bug-gzip/2013-02/msg00030.html>.
1116 2013-02-05 Paul Eggert <eggert@cs.ucla.edu>
1118 gzip: fix bug where you say "n" and gzip acts as if you said "y"
1119 Problem reported for GCC 4.7 x86-64 -O2 by Allan McRae in
1120 <http://lists.gnu.org/archive/html/bug-gzip/2013-02/msg00000.html>.
1121 * NEWS: Document this. Use consistent format in earlier note.
1122 * gzip.c: Include yesno.h.
1123 * gzip.h (yesno): Remove decl; that's yesno.h's job.
1125 2013-01-06 Paul Eggert <eggert@cs.ucla.edu>
1127 maint: adjust to Gnulib changes
1128 * lib/.gitignore: Add glthread, math.c, unistd.c, wctype-h.c.
1129 * m4/.gitignore: Remove inline.m4.
1131 2013-01-04 Jim Meyering <jim@meyering.net>
1133 maint: update all copyright year number ranges
1134 Run "make update-copyright".
1136 build: update gnulib submodule to latest
1138 2012-12-10 Paul Eggert <eggert@cs.ucla.edu>
1140 diagnose unexpected EOF and zero lengths in packed data
1141 Problem reported by Aki Helin.
1142 * NEWS: Mention Aki's reports.
1143 * tests/unpack-invalid: New file,
1144 with test data suggested by Aki.
1145 * tests/Makefile.am (TESTS): Add it.
1146 * unpack.c (read_byte): New function.
1147 (look_bits, read_tree): Use it.
1148 (read_tree): Check against zero bit length Huffman code.
1150 gzip: diagnose invalid code in packed data
1151 * unpack.c (unpack): When encountering a code out of range, report
1152 it and fail rather than charging ahead with randomish output.
1153 Problem reported by Aki Helin.
1155 2012-11-16 Jim Meyering <jim@meyering.net>
1157 maint: avoid new syntax-check failures
1158 * cfg.mk (_gl_TS_unmarked_extern_vars): Append nice_match, to avoid
1159 false-positive syntax-check failure on i686.
1160 * gzip.c (SIGPIPE): Remove definition. Now always provided via gnulib.
1161 * lib/.gitignore: xsize.c, added by gnulib-tool.
1163 2012-11-16 Paul Eggert <eggert@cs.ucla.edu>
1165 gzip: fix debugging/porting typo
1166 * unlzw.c (unlzw) [DEBUG]: Don't assume 'long' can be printed with %d.
1168 maint: merge build improvements from coreutils
1169 * configure.ac: Invoke gl_ASSERT_NO_GNULIB_POSIXCHECK.
1170 (--enable-gcc-warnings): Change help message.
1171 (gl_GCC_VERSION_IFELSE): New macro.
1172 Do not omit -Wunused-macros for main code.
1173 Adjust other -W options as per coreutils.
1174 * lib/Makefile.am (AM_CFLAGS): Use GNULIB_WARN_CFLAGS, not WARN_CFLAGS.
1175 * unlzw.c (REGISTERS, REG1, REG2, ..., REG16): Remove.
1176 All uses removed. These provoked -Wunused-macros warnings.
1177 This sort of fiddling with registers hasn't been needed for years.
1179 build: update gnulib submodule to latest
1181 maint: port to platforms lacking SIGPIPE
1182 * gzip.c (SIGPIPE): Define to 0 if not already defined.
1184 doc: bring up to date and fix troff typos
1185 * doc/gzip.texi (Overview): Update RFC URLs.
1186 * gzip.1: Likewise. Don't say "SEE ALSO" to programs that almost
1187 nobody has installed anymore.
1188 * gzip.1, zmore.1: Fix some troff typos.
1189 * zdiff.1: Clarify what happens with input files. Don't talk
1190 about temporary file names, as they're rarely used these days.
1192 2012-10-24 Paul Eggert <eggert@cs.ucla.edu>
1194 tests: exercise the grep -e portability fix
1195 Remove workaround for Solaris, since the bug should be fixed now.
1196 Suggested by Petr Sumbera in
1197 <http://lists.gnu.org/archive/html/bug-gzip/2012-10/msg00005.html>.
1198 * tests/zgrep-context, tests/zgrep-f: All uses removed.
1199 * tests/init.cfg (require_POSIX_grep_): Remove.
1201 2012-10-23 Eric Blake <eblake@redhat.com>
1203 build: default to --enable-gcc-warnings in a git tree
1204 Anyone building from cloned sources can be assumed to have a new
1205 enough environment, such that enabling gcc warnings by default will
1206 be useful. Tarballs still default to no warnings, and the default
1207 can still be overridden with --disable-gcc-warnings.
1208 * configure.ac (gl_gcc_warnings): Set default based on environment.
1210 2012-10-20 Paul Eggert <eggert@cs.ucla.edu>
1212 zgrep: do not assume standard 'grep' has -e
1213 On Solaris 11, /usr/bin/grep -e does not work.
1214 Problem reported by Petr Sumbera in
1215 <http://lists.gnu.org/archive/html/bug-gzip/2012-10/msg00003.html>.
1216 * Makefile.am (.in): Substitute @GREP@.
1217 * configure.ac (AC_PROG_GREP): Invoke.
1218 * zgrep.in (grep): Use @GREP@.
1220 2012-08-14 Paul Eggert <eggert@cs.ucla.edu>
1222 zgrep: do not assume GNU expr
1223 * zgrep.in: Do not assume '\+' has the GNU behavior in the BRE
1224 given to 'expr', as POSIX does not guarantee that. Come to think
1225 of it, use a shell pattern rather than 'expr', as this is more
1228 2012-08-08 Jim Meyering <meyering@redhat.com>
1230 tests: exercise the just-fixed part of zgrep
1231 * tests/zgrep-context: New file.
1232 * tests/Makefile.am (TESTS): Add it.
1234 2012-08-08 Jim Meyering <meyering@redhat.com>
1236 zgrep: handle a multi-digit context option like -15
1237 * zgrep.in: Do not malfunction when given an option like -15.
1238 Before, it could end up treating the pattern as a file name:
1240 $ echo x | gzip | zgrep -15 x
1241 gzip: x.gz: No such file or directory
1243 * NEWS (Bug fixes): Mention it.
1244 Reported by Dan Bloch via Thomas Bushnell in
1245 https://bugs.launchpad.net/bugs/1032831
1247 2012-08-07 Jim Meyering <meyering@redhat.com>
1249 build: update gnulib, bootstrap and init.sh
1251 maint: fix misspellings in old ChangeLog and NEWS
1252 * ChangeLog-2007: s/Supress/Suppress/
1254 * cfg.mk (old_NEWS_hash): Update to match typo fix.
1256 2012-06-19 Paul Eggert <eggert@cs.ucla.edu>
1258 zmore: rewrite to fix bugs and assume POSIX
1259 Problem reported for Solaris 9 by Daniel in
1260 <http://lists.gnu.org/archive/html/bug-gzip/2012-06/msg00007.html>.
1261 Rather than figure out what exactly went wrong in Solaris 9
1262 it was easier to rip out all the buggy compatibility and stty cruft.
1263 * zmore.in: Don't use stty or trap; simply pipe the output to 'more'
1264 and let it deal with signals and terminal control.
1265 Use printf, not 'echo', to avoid problems with backslashes.
1266 Don't assume ANS is not 's' in the environment.
1267 Use a 'more'-style header instead of rolling our own style.
1268 Paginate the header, too; the old behavior lost the header.
1269 * NEWS, zmore.1: Document this.
1271 2012-06-17 Jim Meyering <meyering@redhat.com>
1274 * .mailmap: New file. Unify two spellings of Paul's name,
1275 to make git log output slightly cleaner.
1277 maint: post-release administrivia
1278 * NEWS: Add header line for next release.
1279 * .prev-version: Record previous version.
1280 * cfg.mk (old_NEWS_hash): Auto-update.
1283 * NEWS: Record release date.
1285 build: update gnulib for fixed maint.mk
1287 build: update gnulib submodule; bootstrap and init.sh, too
1288 * cfg.mk: Exempt crufty tailor.h from its use of "#define off_t...".
1289 * .gitignore, m4/.gitignore: Update semi-automatically (via bootstrap).
1291 2012-04-24 Paul Eggert <eggert@cs.ucla.edu>
1293 doc: document -rf change
1294 * NEWS: Document the ZFS fix.
1296 gzip: remove CLOSEDIR
1297 * gzip.c (CLOSEDIR): Remove; no longer used.
1299 gzip: port gzip -rf to ZFS
1300 Problem reported privately by Rich Burridge.
1301 * bootstrap.conf: Add savedir.
1302 * gzip.c: Include <savedir.h>.
1303 (_D_EXACT_NAMELEN): Remove.
1304 (treat_dir): Use savedir rather than reading directory entries one
1305 at a time, to avoid revisiting an already-compressed file when using
1306 ZFS and the -rf flags are specified.
1307 * lib/.gitignore, m4/.gitignore: Ignore savedir-related files.
1309 2012-03-18 Paul Eggert <eggert@cs.ucla.edu>
1311 gzip: fix nondeterministic compression results
1312 Reported by Jakub Wilk in <http://bugs.debian.org/647522>.
1313 * deflate.c (fill_window): Don't let garbage pollute the dictionary.
1315 2012-01-11 Jim Meyering <meyering@redhat.com>
1317 tests: make all test scripts executable; work with automake-1.12
1318 * tests/Makefile.am (TESTS_ENVIRONMENT): Adapt to work with upcoming
1320 * tests/mixed: Make executable.
1321 * tests/zgrep-f: Likewise.
1322 * tests/zgrep-signal: Likewise.
1323 * tests/znew-k: Likewise.
1325 build: accommodate newer bootstrap from gnulib
1326 * bootstrap.conf (gnulib_tool_option_extras): Add both --symlink
1327 and --makefile-name=gnulib.mk.
1328 * bootstrap: Update from gnulib.
1329 * tests/init.sh: Update from gnulib.
1330 * lib/Makefile.am: Initialize all of the following so that
1331 generated code in gnulib.mk may use += to append to those variables:
1332 AM_CFLAGS, BUILT_SOURCES, CLEANFILES, EXTRA_DIST, MOSTLYCLEANDIRS,
1333 MOSTLYCLEANFILES, SUFFIXES, noinst_LTLIBRARIES.
1335 2012-01-01 Jim Meyering <meyering@redhat.com>
1337 maint: update all copyright year number ranges
1338 Run "make update-copyright".
1340 2011-12-21 Paul Eggert <eggert@cs.ucla.edu>
1342 zless: decompress stdin too, if less 429 or later
1343 * zless.in: Use LESSOPEN |- feature of less 429 or later.
1344 Problem reported by Jeroen Roovers via Mike Frysinger in
1345 <http://lists.gnu.org/archive/html/bug-gzip/2011-12/msg00006.html>.
1347 2011-11-29 Jim Meyering <meyering@redhat.com>
1349 build: update gnulib submodule to latest
1351 build: accommodate gnulib's new warnings with --enable-gcc-warnings
1352 * configure.ac (WERROR_CFLAGS): Disable two new warnings:
1353 -Wno-format-nonliteral, -Wno-unsuffixed-float-constants.
1354 * gzip.h (bi_reverse): Declare with _GL_ATTRIBUTE_CONST.
1355 (gzip_base_name): Declare with _GL_ATTRIBUTE_PURE.
1357 2011-11-29 Jim Meyering <meyering@redhat.com>
1359 tests: use "compare exp out", not "compare out exp"
1360 Likewise, when an empty file is expected, use "compare /dev/null out",
1361 not "compare out /dev/null". I.e., specify the expected/desired contents
1362 via the first file name. Prompted by a suggestion from Bruno Haible
1363 in http://thread.gmane.org/gmane.comp.gnu.grep.bugs/4020/focus=29154
1367 git grep -l -E 'compare [^ ]+ exp' \
1368 |xargs perl -pi -e 's/\b(compare) (\S+) (exp\S*)/$1 $3 $2/'
1369 git grep -l -E 'compare [^ ]+ /dev/null' \
1370 |xargs perl -pi -e 's,\b(compare) (\S+) (/dev/null),$1 $3 $2,'
1372 2011-11-05 Jim Meyering <meyering@redhat.com>
1374 build: update gnulib submodule to latest
1376 2011-11-02 Paul Eggert <eggert@cs.ucla.edu>
1378 * tests/zgrep-signal: Don't assume exit status 141 on PIPE signal.
1379 Problem reported by Eric Blake in
1380 <http://lists.gnu.org/archive/html/bug-gzip/2011-11/msg00007.html>.
1382 * tests/zgrep-signal: Use perl instead of a nonportable shell trap.
1383 Problem reported by Eric Blake in
1384 <http://lists.gnu.org/archive/html/bug-gzip/2011-11/msg00005.html>.
1386 * tests/zgrep-signal: Test for Fedora 15 signal bug.
1387 Also, don't assume that SIGPIPE is SIG_DFL on entry.
1389 2011-11-02 Jim Meyering <meyering@redhat.com>
1391 build: update gnulib submodule to latest
1393 tests: mixed: correct size-enumeration logic
1394 * tests/mixed (sizes): Fix misplaced "&& break" that made us test
1395 only with a size of 0, rather than all sizes in 0..64.
1397 maint: avoid "make syntax-check" failure
1398 * gzip.c (treat_stdin): Indent with spaces, not TABs.
1400 2011-11-02 Paul Eggert <eggert@cs.ucla.edu>
1402 * gzip.c (treat_stdin): If quiet, be quiet with plain gzip -q.
1403 Problem reported by Michaël Guitton in
1404 <http://lists.gnu.org/archive/html/bug-gzip/2011-11/msg00000.html>.
1406 2011-08-10 Jim Meyering <meyering@redhat.com>
1408 maint: remove amiga, atari, msdos, nt, os2, vms sub-directories,
1409 and all files therein. This was proposed months prior, and no
1411 * amiga/Makefile.gcc: Remove file.
1412 * amiga/Makefile.sasc: Likewise.
1413 * amiga/match.a: Likewise.
1414 * amiga/tailor.c: Likewise.
1415 * amiga/utime.h: Likewise.
1416 * atari/Makefile.st: Likewise.
1417 * msdos/Makefile.bor: Likewise.
1418 * msdos/Makefile.djg: Likewise.
1419 * msdos/Makefile.msc: Likewise.
1420 * msdos/doturboc.bat: Likewise.
1421 * msdos/gzip.prj: Likewise.
1422 * msdos/match.asm: Likewise.
1423 * msdos/tailor.c: Likewise.
1424 * nt/Makefile.nt: Likewise.
1425 * os2/Makefile.os2: Likewise.
1426 * os2/gzip.def: Likewise.
1427 * os2/gzip16.def: Likewise.
1428 * vms/Makefile.gcc: Likewise.
1429 * vms/Makefile.mms: Likewise.
1430 * vms/Makefile.vms: Likewise.
1431 * vms/Readme.vms: Likewise.
1432 * vms/gzip.hlp: Likewise.
1433 * vms/makegzip.com: Likewise.
1434 * vms/vms.c: Likewise.
1435 * Makefile.am (EXTRA_DIST): Remove those file names.
1437 build: use largefile module and update to latest gnulib
1438 * configure.ac: Remove AC_SYS_LARGEFILE, subsumed by ...
1439 * bootstrap.conf (gnulib_modules): ...this. Use largefile module.
1440 * gnulib: Update to latest.
1442 2011-07-12 Jim Meyering <meyering@redhat.com>
1444 maint: update init.sh and bootstrap from gnulib
1445 * bootstrap: Update from gnulib.
1446 * tests/init.sh: Update from gnulib.
1448 maint: use gnulib's realloc-gnu and malloc-gnu modules
1449 * bootstrap.conf (gnulib_modules): Use realloc-gnu and malloc-gnu,
1450 rather than the now-deprecated realloc and malloc modules.
1452 build: update gnulib submodule to latest
1454 2011-06-21 Paul Eggert <eggert@cs.ucla.edu>
1456 * deflate.c: Export nice_match to assembler.
1457 (static_unless_ASMV): New macro.
1458 (nice_match): Use it.
1460 2011-06-08 Jim Meyering <meyering@redhat.com>
1462 build: fix "make syntax-check"
1463 * cfg.mk (_gl_TS_unmarked_extern_vars): Add good_match.
1465 build: avoid link failure: this time on i686 linux
1466 * deflate.c (good_match): Must not be static, since it may
1467 be used from lib/match.c.
1469 2011-05-14 Jim Meyering <meyering@redhat.com>
1471 build: avoid link failure on at least i386-FreeBSD7.2
1472 * deflate.c (match_start, prev_length, max_chain_length): Do not
1473 declare these as static. On some types of system/arch, they are
1475 * cfg.mk (_gl_TS_unmarked_extern_vars): Mark those three variables
1476 as known-extern: match_start, prev_length, max_chain_length.
1478 2011-05-13 Jim Meyering <meyering@redhat.com>
1480 avoid new build failure on a system without <crypt.h>
1481 * bits.c: Don't include "crypt.h", now that it's deleted.
1483 maint: use gnulib's new readme-release module
1484 * bootstrap.conf (gnulib_modules): Add readme-release.
1485 (bootstrap_epilogue): Add the recommended perl one-liner.
1486 * README-release: Remove file; it is now generated from gnulib.
1487 * .gitignore: Add it.
1489 2011-05-09 Jim Meyering <meyering@redhat.com>
1491 build: update gnulib submodule to latest
1493 maint: prepare for gnulib's new tight-scope syntax-check rule
1494 * cfg.mk (_gl_TS_dir): Define.
1495 (_gl_TS_unmarked_extern_vars): Define.
1497 maint: declare many variables to be static
1498 * deflate.c: Likewise.
1501 * inflate.c: Likewise.
1502 * trees.c: Likewise.
1503 * unzip.c: Likewise.
1506 maint: remove crypt.[ch] stubs
1507 * Makefile.am (gzip_SOURCES): Remove crypt.c
1508 (EXTRA_DIST): Remove crypt.h
1509 * crypt.c, crypt.h: Remove files.
1510 * unpack.c: Don't #include "crypt.h"
1513 * unzip.c: Likewise.
1515 maint: limit scope of several functions
1516 * deflate.c (longest_match): Move extern declaration into #if-ASMV block.
1517 [!ASMV]: Define as static.
1518 * inflate.c: Remove unnecessary prototypes.
1519 ANSI-declify functions and declare them to be static.
1521 maint: remove all uses of OF((...)) prototype-hiding macro
1522 * bits.c: Remove all uses of OF.
1523 * deflate.c: Likewise.
1525 * inflate.c: Likewise.
1527 * trees.c: Likewise.
1528 * unlzh.c: Likewise.
1529 * unpack.c: Likewise.
1532 (OF): Remove its definition, too.
1534 maint: prepare for tight-scope rule: use noinst_HEADERS
1535 * Makefile.am (EXTRA_DIST): Move lzw.h and gzip.h from here to ...
1536 (noinst_HEADERS): ...here.
1537 For convenience, since the tight-scope rule uses $(noinst_HEADERS).
1539 2011-04-14 Jim Meyering <meyering@redhat.com>
1541 maint: update bootstrap and init.sh from gnulib
1542 * bootstrap: Likewise.
1543 * tests/init.sh: Update from gnulib.
1545 maint: note that we'll remove amiga, atari, msdos, nt, os2, vms soon
1546 If someone can show that any of these are being used, let us know.
1547 * TODO: Note the plan to remove those directories this year.
1549 build: update gnulib submodule to latest
1551 maint: fix typos in vms manual: s/it\nit/\nit/
1552 * vms/gzip.hlp: Remove doubled "it".
1554 2011-04-10 Jim Meyering <meyering@redhat.com>
1556 maint: fix typos in comment: s/to to/to/
1557 * deflate.c: Remove doubled 'to's.
1559 2011-03-20 Jim Meyering <meyering@redhat.com>
1561 maint: stop using .x-sc_* files to list syntax-check exemptions
1562 Instead, use the new mechanism with which you merely use a
1563 variable (derived from the rule name) defined in cfg.mk to an ERE
1564 matching the exempted file names.
1565 * gnulib: Update to latest, to get maint.mk that implements this.
1566 * .x-sc_file_system: Remove file.
1567 * .x-sc_prohibit_tab_based_indentation: Likewise.
1568 * .x-sc_require_config_h: Likewise.
1569 * .x-sc_require_config_h_first: Likewise.
1570 * cfg.mk: Define variables to exempt the same files.
1572 2011-03-18 Jim Meyering <meyering@redhat.com>
1574 doc: correct README-release
1575 * README-release: Remove mention of -announce mailing list.
1576 Unlike coreutils, gzip does not have its own.
1578 doc: update release procedure
1579 * README-release: Resync from coreutils' file by the same name.
1581 2011-01-03 Jim Meyering <meyering@redhat.com>
1583 maint: update copyright year ranges to include 2011
1584 Run "make update-copyright", so "make syntax-check" works in 2011.
1586 build: update gnulib submodule to latest
1588 maint: avoid failure of new test for bindtextdomain
1589 * cfg.mk (local-checks-to-skip): Add sc_bindtextdomain.
1591 2010-12-02 Jim Meyering <meyering@redhat.com>
1593 maint: avoid "make syntax-check" failure due to old-NEWS modification
1594 * cfg.mk (old_NEWS_hash): Update, to reflect recent NEWS correction.
1596 2010-12-01 Paul Eggert <eggert@cs.ucla.edu>
1598 * NEWS: The "gzip -f foo.gz" change occurred in 1.3.13, not 1.3.12
1600 2010-11-10 Paul Eggert <eggert@cs.ucla.edu>
1602 zgrep: don't assume traditional behavior with signal numbers
1603 * zgrep.in: Don't assume the exit status is the signal number plus
1604 128, as POSIX doesn't require this. No need to kill self; exiting
1605 with large status is enough. Propagate all exit statuses greater
1606 than 1, not merely those in the range 129..143, as there's no need
1607 to treat that range specially (and it's not portable anyway).
1609 2010-11-09 Paul Eggert <eggert@cs.ucla.edu>
1611 zgrep: fix shell portability bug with -f; fix mishandling of "-e -"
1612 * tests/zgrep-f: Check for "zgrep -e -" bug, too.
1613 * zgrep.in: Don't assume that if the shell redirects fd 6, then
1614 this redirection is visible to the subsidiary grep. POSIX doesn't
1615 guarantee this visibility except for file descriptors 0, 1, and 2,
1616 and ksh does not support it. Problem reported by Thomas Schulz in
1617 <http://lists.gnu.org/archive/html/bug-gzip/2010-11/msg00000.html>.
1618 Also, fix a related bug: "-e -" was mishandled. These two bugs
1619 were introduced by commit 5b54db4546b84ec97ff57a62f8ddb98faacf77f2
1621 (escape): Change the convention: do not assume that a stray X
1622 is present at the end of the last line. All uses changed.
1623 There was no longer any need for this convention, and fixing this
1624 made it a bit easier to use 'sed' in a later part of the fix.
1626 2010-11-08 Paul Eggert <eggert@cs.ucla.edu>
1628 maint: fix copyright dates that were munged by a maintenance script
1629 * gunzip.in, gzexe.in, zcat.in, zcmp.in, zdiff.in, zforce.in:
1630 * zgrep.in, zless.in, zmore.in, znew.in:
1631 A script went awry when updating copyright dates in gzip's shell
1632 scripts. It should update comments to look like "# Copyright (C)
1633 2007, 2010 Free Software Foundation, Inc." (with a set of years)
1634 and version messages to look like "Copyright (C) 2010 Free
1635 Software Foundation, Inc." (with just the most-recent year).
1636 Instead, it sometimes ignored one, sometimes the other, and
1637 typically put ranges into version messages. Fix all this stuff by
1638 hand, using dates that I divined from the change logs (so they're
1639 a bit more accurate than script-generated dates). We need to fix
1640 the script before it runs in 2011.
1642 2010-10-23 Jim Meyering <meyering@redhat.com>
1644 maint: anchor patterns in .gitignore files
1645 * doc/.gitignore: Anchor patterns.
1646 * lib/.gitignore: Likewise.
1647 * m4/.gitignore: Likewise.
1649 maint: update bootstrap and init.sh from gnulib
1650 * bootstrap: Update.
1651 * tests/init.sh: Update.
1653 2010-10-23 Rob Vermaas <rob.vermaas@gmail.com>
1655 maint: update to latest gnulib; use fdutimens, not gl_futimens
1656 * gzip.c (copy_stat): Use fdutimens, not gl_futimens.
1657 * gnulib: Update to latest.
1659 2010-10-23 Jim Meyering <meyering@redhat.com>
1661 maint: accommodate stricter syntax-check
1662 Avoid #if, #define and #undef of always-defined symbols.
1663 * gzip.c (ELOOP, SIGPIPE): Remove unneeded cpp directives.
1664 * tailor.h (HAVE_DIRENT_H, HAVE_FCNTL_H, HAVE_UNISTD_H, MSDOS):
1665 (O_BINARY): Likewise.
1667 maint: make our use of gnulib's init.sh conform
1668 * tests/help-version: Make use of init.sh conform.
1669 * tests/helin-segv: Likewise.
1670 * tests/help-version: Likewise.
1671 * tests/hufts: Likewise.
1672 * tests/memcpy-abuse: Likewise.
1673 * tests/mixed: Likewise.
1674 * tests/null-suffix-clobber: Likewise.
1675 * tests/stdin: Likewise.
1676 * tests/trailing-nul: Likewise.
1677 * tests/zdiff: Likewise.
1678 * tests/zgrep-f: Likewise.
1679 * tests/zgrep-signal: Likewise.
1680 * tests/znew-k: Likewise.
1682 2010-10-10 Jim Meyering <meyering@redhat.com>
1684 maint: describe policy on copyright year number ranges
1685 * README: Mention coreutils' long-standing policy on use of M-N
1686 ranges in copyright year lists. Requested by Richard Stallman.
1688 2010-09-15 Paul Eggert <eggert@cs.ucla.edu>
1690 zgrep: fix parsing of -Eh options
1691 * zgrep.in: Update list of single-letter options to match what's
1692 in GNU grep. Add -h as an alias for --no-filename. Bug reported
1693 by Vladimir Sidorenko in
1694 <http://lists.gnu.org/archive/html/bug-gzip/2010-09/msg00007.html>.
1696 2010-08-17 Paul Eggert <eggert@cs.ucla.edu>
1698 gzip: fix NO_SIZE_CHECK for VMS
1699 * gzip.c (do_list): Use if, not #if.
1700 * tailor.h (NO_SIZE_CHECK) [defined(VAXC) || defined(VMS)]: Define.
1701 * zip.c (zip): Simplify conditional, which was incorrect at any rate
1704 2010-08-15 Paul Eggert <eggert@cs.ucla.edu>
1706 algorithm.doc: mention Internet RFC 1952 and modernize a bit
1707 * algorithm.doc: Update to mention header-CRC and Internet RFC 1952.
1708 Also, remove the crypto stuff, which never worked.
1709 Inspired by that same suggestion of Greg Roelofs.
1711 gzip: Use 0x%04x instead of %x when printing 16-bit checksums
1712 * gzip.c (get_method): Use 0x%04x, not %x, to print 16-bit checksums.
1713 Inspired by a suggestion of Greg Roelofs in
1714 http://lists.gnu.org/archive/html/bug-gzip/2010-08/msg00004.html
1716 2010-08-03 Paul Eggert <eggert@cs.ucla.edu>
1718 maint: update bootstrap
1719 * bootstrap, bootstrap.conf, tests/init.sh: Merge from gnulib.
1721 2010-07-19 Paul R. Eggert <eggert@cs.ucla.edu>
1723 gzip: don't assume C99, and don't assume overlapping memcpy should work
1724 * tailor.h (NOMEMCPY): Remove. memcpy is entitled to not work
1725 on overlapping blocks.
1726 * inflate.c (inflate_codes): Don't put decl after statement.
1729 * gzip.c (get_method): don't assume size_t can be printed with %u
1731 2010-07-02 Paul Eggert <eggert@cs.ucla.edu>
1733 Mention that gzip -d now handles FHCRC.
1735 2010-07-02 Paul Eggert <eggert@cs.ucla.edu>
1737 Decode FHCRC flag properly, as per Internet RFC 1952.
1738 Problem reported by Greg Roelofs in:
1739 http://lists.gnu.org/archive/html/bug-gzip/2010-06/msg00003.html
1741 * gzip.c (discard_input_bytes): New function.
1742 (get_method): Check header checksum, if given. We never generate it,
1743 but other programs may.
1744 * gzip.h (HEADER_CRC): Renamed from CONTINUATION. All uses changed.
1745 * tailor.h [defined __50SERIES]: Remove PRIMOS stuff that was obsolete
1746 anyway and would have made this patch harder to maintain.
1747 (get_char, put_char): Remove.
1748 * zip.c (zip): Use put_byte instead of the now-removed put_char.
1750 2010-07-01 Paul Eggert <eggert@cs.ucla.edu>
1752 Don't assume that sizeof (long) == 4 when computing statistics.
1753 * gzip.c (get_method): Don't assume sizeof (long) == 4.
1754 * zip.c (zip): Likewise.
1756 Update Info-ZIP name and coordinates (thanks to Greg Roelofs).
1758 2010-05-11 Paul Eggert <eggert@cs.ucla.edu>
1760 * doc/gzip.texi (Sample): Fix backslash quoting problem.
1761 Problem reported by Ole Tange in
1762 <http://lists.gnu.org/archive/html/bug-gzip/2010-05/msg00000.html>.
1764 2010-04-26 Jim Meyering <meyering@redhat.com>
1766 build: update gnulib submodule to latest
1768 maint: remove primos support
1769 * Makefile.am (EXTRA_DIST): Remove all primos/ files.
1770 * primos/build.cpl: Remove file.
1771 * primos/ci.opts: Likewise.
1772 * primos/include/errno.h: Likewise.
1773 * primos/include/fcntl.h: Likewise.
1774 * primos/include/stdlib.h: Likewise.
1775 * primos/include/sysStat.h: Likewise.
1776 * primos/include/sysTypes.h: Likewise.
1777 * primos/primos.c: Likewise.
1778 * primos/readme: Likewise.
1780 2010-04-08 Jim Meyering <meyering@redhat.com>
1782 build: include cfg.mk in the distribution tarball
1783 * Makefile.am (EXTRA_DIST): Add cfg.mk.
1785 2010-04-07 Eric Blake <eblake@redhat.com>
1787 maint: ignore more built files
1788 * .gitignore: Add version files.
1790 2010-04-07 Jim Meyering <meyering@redhat.com>
1792 tests: help-version: cross-check PATH in tests
1793 * tests/help-version: Cross-check $VERSION and --version output.
1794 * tests/Makefile.am (TESTS_ENVIRONMENT): Export VERSION=$(VERSION).
1796 tests: improve help-version
1797 * tests/help-version: Use fail_, rather than echo+Exit.
1799 tests: pull help-version from grep
1801 build: keep --version strictly up to date
1802 Before this change, in development, gzip's --version output could lag
1803 behind reality by a couple deltas or by a "-dirty" suffix. That would
1804 lead to spurious failure of the new --version-$VERSION PATH cross-check.
1805 * Makefile.am (version.c, version.h): New rules.
1806 (BUILT_SOURCES): Set/append.
1807 (noinst_LIBRARIES, noinst_libver_a_SOURCES): Define.
1808 (gzip_LDADD): Add libver.a.
1809 (DISTCLEANFILES): Define.
1810 * gzip.c (license): Use Version, not VERSION.
1812 2010-04-06 Jim Meyering <meyering@redhat.com>
1814 tests: (portability) use st, not "status" as variable name
1815 * tests/zgrep-signal: Do not use status as a variable name,
1816 per autoconf's documentation that it is not portable to
1819 tests: s/framework_failure/framework_failure_/
1821 tests: update init.sh from gnulib
1822 * tests/init.sh: Update from gnulib.
1824 tests: run most tests via tests/Makefile.am
1825 * Makefile.am (SUBDIRS): List tests after ".".
1826 Move most test-related things from here to ...
1827 * tests/Makefile.am: ... here.
1828 * configure.ac (AC_CONFIG_FILES): Add tests/Makefile.
1829 * tests/helin-segv: Adjust.
1830 * tests/help-version: Likewise.
1831 * tests/hufts: Likewise.
1832 * tests/memcpy-abuse: Likewise.
1833 * tests/mixed: Likewise.
1834 * tests/null-suffix-clobber: Likewise.
1835 * tests/stdin: Likewise.
1836 * tests/trailing-nul: Likewise.
1837 * tests/zdiff: Likewise.
1838 * tests/zgrep-f: Likewise.
1839 * tests/zgrep-signal: Likewise.
1840 * tests/znew-k: Likewise.
1842 tests: skip tests that use grep's -f and -E options, if they don't work
1843 * tests/init.cfg (require_grep_minus_f): New function.
1844 * tests/zgrep-f: Use require_grep_minus_f. Use path_prepend_.
1846 tests: arrange for skip and failure notices to go to stderr, not .log
1847 * tests/init.cfg: New file. Make init.sh's stderr_fileno_ match
1848 what the "exec 9>&2" we use in TESTS_ENVIRONMENT.
1849 * Makefile.am (EXTRA_DIST): Add it.
1851 2010-04-06 Eric Blake <eblake@redhat.com>
1853 maint: ignore generated files
1854 * .gitignore: Ignore recent gnulib additions.
1856 maint: update bootstrap
1857 * bootstrap: Use latest copy from gnulib/build-aux.
1859 2010-04-05 Jim Meyering <meyering@redhat.com>
1861 build: use gnulib's lib-ignore module
1862 * bootstrap.conf (gnulib_modules): Add lib-ignore, in case it helps.
1863 * Makefile.am (AM_LDFLAGS): Define it.
1865 maint: let configure-invoked cpp emit diagnostics to config.log
1866 * configure.ac: Do not discard CPP's stderr.
1868 build: update gnulib submodule to latest, and adapt
1869 * cfg.mk: Update to use new _sc_search_regexp interface. Run this:
1870 perl -pi -e 's/\b_prohibit_regexp\b/_sc_search_regexp/;'
1871 -e 's/\bmsg=/halt=/; s/\bre=/prohibit=/;' cfg.mk
1872 and then adjust backslashes so they still line up.
1873 * cfg.mk (local-checks-to-skip): Add new sc_texinfo_acronym, to skip it.
1874 * msdos/tailor.c (fcalloc): Mark a diagnostic for translation, to
1875 placate stricter syntax-check, even though no one uses this file.
1877 use assembly code matcher when possible
1878 * configure.ac (ASCPPPOST): Backslash-escape "#" in AC_SUBST'd
1879 variable, to keep make from seeing it as a comment-introducer.
1880 Based on a patch by Petr Pisar.
1881 * lib/Makefile.am (match.$(OBJEXT)): Use AM_V_GEN and AM_V_at.
1882 * lib/match.c: Don't include <config.h>.
1883 It would impede configure-time assembler test.
1884 * .x-sc_require_config_h: Exempt lib/match.c from syntax-check.
1885 * .x-sc_require_config_h_first: Likewise.
1887 2010-03-20 Jim Meyering <meyering@redhat.com>
1889 do not use stat.st_mtime of a non-regular file
1890 * gzip.c: Include "timespec.h".
1891 (treat_stdin): Use st_mtime only from a regular file.
1892 This matters at least on Cygwin 1.7.1-1, for which a stdin-pipe has
1893 the mtime of /dev/null, rather than the gzip-documented-for-pipes
1894 "current time". Reported by Denis Excoffier.
1896 2010-02-22 Jim Meyering <meyering@redhat.com>
1898 tests: exercise the fix for the decompression data-loss bug
1899 * tests/null-suffix-clobber: New file.
1900 * Makefile.am (TESTS): Add it.
1902 gzip: fix a data-loss bug when decompressing with --suffix=''
1903 * gzip.c (main): Disallow an empty --suffix=S also with -d.
1904 Otherwise, "gzip -d -S '' F.gz" would ask if it's ok to remove the
1905 existing file, "F.gz"; if you reply "yes", you'd lose all of that data.
1906 Use of an empty suffix was already rejected in compression mode.
1907 * gzip.1 (--suffix (-S)): Do not recommend to use "gunzip -S '' *".
1908 Describe how the suffix is used when decompressing, too.
1909 * NEWS (Bug fixes): mention the fix.
1910 Reported by Ripduman Sohan.
1912 tests: add ---presume-input-tty option, solely for testing
1913 * gzip.c: Include <stdbool.h>.
1914 (presume_input_tty): New global.
1916 (treat_stdin, check_ofname): Use it.
1918 2010-02-07 Jim Meyering <meyering@redhat.com>
1920 doc: minor adjustment to README-release
1921 * README-release: Tweak description, to sync from coreutils.
1923 tests: add the help-version sanity tests from coreutils
1924 * tests/help-version: New file, from coreutils.
1925 * Makefile.am (TESTS): Add it.
1927 tests: make distcheck invoke "make syntax-check" and other tests
1928 * dist-check.mk: New file, from coreutils.
1929 * cfg.mk: Include it.
1930 * Makefile.am (distcheck-hook): New rule, to make us use it.
1932 zcmp: consistently indicate failure with exit status of 2
1933 * zcmp.in: Exit with status of 2 (not 1), when writing
1934 --help or --version output fails, to be more like cmp.
1936 2010-02-03 Jim Meyering <meyering@redhat.com>
1938 tests: add more tests of gzip -cdf
1939 * tests/mixed: Test "gzip -cdf" for a range of small uncompressed files.
1941 tests: flip and adjust mixed test, now that the bug is fixed
1942 * NEWS (Bug fixes): Mention the fix.
1943 * Makefile.am (XFAIL_TESTS): Move tests/mixed from here...
1944 (TESTS): ...to here.
1945 * tests/mixed: Comment out the currently (always?) failing part.
1947 2010-02-03 Mark Adler <madler@alumni.caltech.edu>
1949 gzip -cdf now handles concatenation of gzip'd and uncompressed data
1950 * util.c (copy): Change semantics so as to honor a decremented inptr.
1951 * gzip.c (get_method): When needed (-cdf), decrement inptr rather
1952 than clearing it -- and output the first magic byte.
1954 2010-02-03 Dmitry V. Levin <ldv@altlinux.org>
1956 zgrep: terminate gracefully when a pipeline is interrupted by a signal
1957 zgrep is not terminated gracefully when its grep/sed pipeline
1958 is terminated by a signal. For example, a command like
1959 zgrep -F .TH /usr/share/man/man1/*.gz | head
1960 continues working long after the "head" process completes.
1961 Another example, a command like
1962 zgrep unmatched-pattern /usr/share/man/man1/*.gz
1963 cannot be interrupted by sending a SIGQUIT with Ctrl-\ key, it outputs
1964 zgrep: line 221: test: : integer expression expected
1966 * zgrep.in: Terminate gracefully when the grep/sed pipeline is
1967 terminated by a signal.
1968 * tests/zgrep-signal: New test.
1969 * Makefile.am (TESTS): Add it.
1971 2010-02-03 Jim Meyering <meyering@redhat.com>
1973 maint: teach "make syntax-check" the space-only indentation rule
1974 * cfg.mk (sc_prohibit_tab_based_indentation): New rule, from coreutils.
1975 (sc_prohibit_emacs__indent_tabs_mode__setting): Likewise.
1976 * bootstrap: Remove "indent-tabs-mode: nil" directive.
1977 * .x-sc_prohibit_tab_based_indentation: New file.
1979 2010-02-02 Jim Meyering <meyering@redhat.com>
1981 global: convert indentation-TABs to spaces
1982 Transformed via this shell code:
1985 | grep -vE '(^|/)((GNU)?[Mm]akefile|ChangeLog)|\.(am|mk)$' \
1986 | grep -vE 'tests/pr/|help2man' \
1987 | xargs grep -lE "^ *$t" \
1988 | xargs perl -MText::Tabs -ni -le \
1989 '$m=/^( *\t[ \t]*)(.*)/; print $m ? expand($1) . $2 : $_'
1991 2010-02-02 Dmitry V. Levin <ldv@altlinux.org>
1993 wrapper scripts: write diagnostics to stderr, not to stdout
1994 * zforce.in: In case of usage error, output short error diagnostics to
1995 stderr instead of printing help text to stdout.
1996 * zmore.in: Likewise.
1997 * znew.in: Likewise.
1999 2010-02-02 Jim Meyering <meyering@redhat.com>
2001 gzip -cdf mishandles some concatenated input streams: test it
2002 * tests/mixed: Exercise "gzip -cdf" bug.
2003 * Makefile.am (XFAIL_TESTS): Add it.
2004 Mark Adler reported the bug.
2006 tests: move the hufts-segv test to its own file
2007 * tests/hufts: New test.
2008 * Makefile.am (TESTS): Add tests/
2009 (check-local): Remove the hufts-segv test from this rule.
2011 tests: begin moving tests into their own files
2012 * Makefile.am (TESTS): Add tests/stdin.
2013 (check-local): Move the stdin check to its own file:
2014 * tests/stdin: New script.
2016 tests: remove unnecessary use of "path_prepend_ ."
2017 It is unnecessary, since Makefile.am's TESTS_ENVIRONMENT setting
2018 already adds the top build directory, and besides, is only
2019 marginally useful when running stand-alone, since it presumes
2020 that the script is being run from the top build directory.
2021 * tests/helin-segv: Remove unnecessary use of path_prepend_.
2022 * tests/memcpy-abuse: Likewise.
2023 * tests/trailing-nul: Likewise.
2024 * tests/zdiff: Likewise.
2025 * tests/zgrep-f: Likewise.
2027 tests: note that znew-k test depends on length of temp file name
2028 * tests/znew-k: Tweak diagnostic, factor and add a surprising comment.
2030 2010-02-01 Jim Meyering <meyering@redhat.com>
2032 build: update gnulib submodule to latest
2034 2010-02-01 Dmitry V. Levin <ldv@altlinux.org>
2036 fix "znew -K" to work without use of compress utility
2037 * znew.in: Change -K option to imply -t, do not use compress(1).
2038 * znew.1: Document it.
2039 * tests/znew-k: New test.
2040 * Makefile.am (TESTS): Add it.
2042 2010-01-20 Jim Meyering <meyering@redhat.com>
2044 maint: update README-release procedure
2045 * README-release: sync from coreutils.
2047 post-release administrivia
2048 * NEWS: Add header line for next release.
2049 * .prev-version: Record previous version.
2050 * cfg.mk (old_NEWS_hash): Auto-update.
2053 * NEWS: Record release date.
2055 tests: exercise the segfault fix
2056 * tests/helin-segv: New test.
2057 * Makefile.am (TESTS): Add it.
2059 gzip -d: do not clobber stack for valid input on x86_64
2060 * unlzw.c (unlzw): Avoid integer overflow.
2061 Aki Helin reported the segfault along with an input to trigger the bug.
2062 * NEWS (Bug fixes): Mention it.
2064 maint: avoid a minor "make syntax-check" failure
2065 * .x-sc_file_system: Exempt NEWS, since it includes a literal
2066 from an old diagnostic.
2068 maint: remove unused file: README-alpha
2069 * README-alpha: Remove unused file.
2071 build: update gnulib submodule to latest
2073 2010-01-11 Yuxi Zhang <YZhang@qnx.com>
2075 gzip -d: use memcpy more often
2076 * inflate.c (inflate_codes): Use memcpy (rather than slower
2077 memcopy-like code) in more cases.
2079 2010-01-11 Jim Meyering <meyering@redhat.com>
2081 build: do not override gnulib-provided AM_CFLAGS options
2082 Avoid a warning from automake:
2083 lib/Makefile.am:24: AM_CFLAGS multiply defined in condition TRUE ...
2084 lib/gnulib.mk:30: ... `AM_CFLAGS' previously defined here
2085 lib/Makefile.am:20: `lib/gnulib.mk' included from here
2087 * lib/Makefile.am (AM_CFLAGS): Append $(WARN_CFLAGS) and
2088 $(WERROR_CFLAGS), i.e., use "+=", not "=".
2089 This was introduced via 2009-12-17 commit 0341fc22,
2090 "build: with --enable-gcc-warnings, use -Werror",
2091 but fortunately is not a bug, because the definition
2092 it would have overridden was always empty.
2094 2010-01-10 Jim Meyering <meyering@redhat.com>
2096 gzip -d would fail with a CRC error...
2097 ...for some inputs, and some memcpy implementations. It is possible
2098 that an offending input has to be compressed "from FAT filesystem
2099 (MS-DOS, OS/2, NT)", since the sole reproducer no longer evokes a
2100 CRC error when uncompressed and recompressed on a GNU/Linux system.
2101 Also, using an unpatched reverse-memcpy-gzip on over 100,000 inputs
2102 on a GNU/Linux system did not turn up another reproducer.
2103 * inflate.c (inflate_codes): Don't call memcpy with overlapping regions.
2104 Properly detect when source and destination overlap.
2105 * tests/memcpy-abuse: New test, to trigger misbehavior.
2106 * Makefile.am (TESTS): Add it.
2107 * NEWS (Bug fixes): Mention it.
2108 Reported by Alain Magloire in
2109 http://thread.gmane.org/gmane.comp.gnu.gzip.bugs/307
2111 2010-01-08 Jim Meyering <meyering@redhat.com>
2113 tests: switch to gnulib's init.sh test infrastructure
2114 * tests/test-lib.sh: Remove file.
2115 * tests/init.sh: New file, from gnulib.
2116 * tests/trailing-nul: Use the new file.
2117 * tests/zdiff: Likewise.
2118 * tests/zgrep-f: Likewise.
2119 * Makefile.am (EXTRA_DIST): List tests/init.sh, not test-lib.sh.
2121 build: update gnulib submodule to latest
2123 2010-01-03 Jim Meyering <meyering@redhat.com>
2125 maint: record update-copyright options for this package
2126 * cfg.mk: Next time, just run "make update-copyright".
2128 2010-01-01 Jim Meyering <meyering@redhat.com>
2130 maint: update all FSF copyright year lists to include 2010
2132 git ls-files |grep -vE '^(\..*|COPYING|gnulib)$' |xargs \
2133 env UPDATE_COPYRIGHT_USE_INTERVALS=1 build-aux/update-copyright
2135 2009-12-31 Jim Meyering <meyering@redhat.com>
2137 maint: newer gnulib; don't hard-code my GPG key ID
2138 * cfg.mk (gpg_key_ID): Remove definition, now that maint.mk automates it.
2139 * gnulib: Update to lastest.
2141 2009-12-30 Jim Meyering <meyering@redhat.com>
2143 build: update gnulib submodule to latest
2145 maint: remove lots of obsolete #if...HAVE_* checks
2146 Remove many always-true cpp tests like #ifdef HAVE_UNISTD_H,
2147 #ifdef HAVE_FCNTL_H and #ifdef SSIZE_MAX.
2150 * inflate.c: Likewise.
2151 * tailor.h: Likewise.
2152 * unlzw.c: Likewise.
2156 build: add a syntax-check
2157 * cfg.mk (sc_prohibit_obsolete_HAVE_HEADER_H): New rule.
2159 build: with --enable-gcc-warnings, use -Werror
2160 * Makefile.am (AM_CFLAGS): Enable $(WERROR_CFLAGS).
2161 * lib/Makefile.am (AM_CFLAGS): Enable both $(WARN_CFLAGS) and
2164 build: quiet warnings from util.c
2165 * configure.ac (warnings): Add -Wno-overflow and -Wno-type-limits.
2167 build: avoid warning about possibly-no-return functions
2168 * gzip.h (read_error, write_error): Mark these functions as "no-return".
2170 build: avoid warning about ignored chown/fchown return value
2171 * bootstrap.conf (gnulib_modules): Add ignore-value.
2172 * gzip.c: Include "ignore-value.h".
2173 (copy_stat): Explicitly ignore chown and fchown failure
2175 build: update gnulib submodule to latest
2177 2009-11-20 Jim Meyering <meyering@redhat.com>
2179 build: unlzw.c: avoid warnings about unused macros
2180 * configure.ac: Turn off -Wunused-macros.
2182 build: avoid warnings about unused macros
2183 * unzip.c (LOCTIM): Comment out unused macro.
2184 * deflate.c (EQUAL): Remove definition. Use "0" at sole point of use.
2186 build: util.c: avoid warnings about add_envopt
2187 * util.c (add_envopt): The parameter "env" was used for two conflicting
2188 purposes. One use required a const char* parameter, while the other
2189 was used as an argument to free, which must not be "const".
2190 Rename the parameter and use a new local variable for the second role.
2192 build: avoid many const-related warnings
2193 * gzip.c: Add "const" to many variables, to avoid compiler warnings.
2194 * util.c (add_envopt): Make 3rd parameter const
2195 (gzip_error): Make sole parameter const.
2196 * gzip.h: Update prototypes.
2198 build: avoid warnings from -Wstrict-prototypes
2199 * gzip.c (main): Declare using a prototype.
2200 (progerror): Likewise. And make parameter const.
2202 build: use gnulib's fdopendir module
2203 * bootstrap.conf (gnulib_modules): Add fdopendir.
2204 * gzip.c (treat_dir): Don't depend on HAVE_FDOPENDIR.
2205 Gnulib now guarantees its availability.
2206 * configure.ac: Don't check for fdopendir here.
2208 build: enable many warnings
2209 * configure.ac: Add support for --enable-gcc-warnings.
2210 * bootstrap.conf (gnulib_modules): Add manywarnings.
2211 * Makefile.am (AM_CFLAGS): Add (WARN_CFLAGS) # $(WERROR_CFLAGS)
2213 maint: tweak formatting of bootstrap.conf
2214 * bootstrap.conf (gnulib_modules): Unindent list.
2216 maint: cfg.mk: remove factored-out ftp host/dir definitions
2217 * cfg.mk (gnu_ftp_host-alpha, gnu_ftp_host-beta gnu_ftp_host-stable):
2218 (gnu_rel_host, url_dir_list): Remove definitions. The defaults,
2219 now provided by maint.mk, are the same.
2220 * gnulib: Update for latest, including those maint.mk additions.
2222 build: "make stable" emitted an invalid gnupload command
2223 * cfg.mk (gnu_ftp_host-stable): Rename from gnu_ftp_host-major.
2224 * README-release: Change another s/major/stable/.
2226 2009-10-30 Jim Meyering <meyering@redhat.com>
2228 post-release administrivia
2229 * NEWS: Add header line for next release.
2230 * .prev-version: Record previous version.
2231 * cfg.mk (old_NEWS_hash): Auto-update.
2234 * NEWS: Record release date.
2236 build: accommodate new syntax-check test
2237 * amiga/tailor.c (_expand_args): Change each of three uses of
2238 "exit(20)" to "exit(EXIT_FAILURE)".
2239 * sample/add.c: Include <stdlib.h>.
2240 (main): Use EXIT_FAILURE and EXIT_SUCCESS, not 1 and 0.
2241 * sample/sub.c (main): Likewise.
2242 * sample/zread.c (main): Likewise.
2244 build: update gnulib submodule to latest
2246 build: link with $(LIB_CLOCK_GETTIME)
2247 * Makefile.am (gzip_LDADD): Add $(LIB_CLOCK_GETTIME), now that
2248 utimens pulls in gettime.
2249 (FILES_TO_CHECK): Remove $(gzip_LDADD), now that it may contain -lrt.
2251 2009-10-28 Jim Meyering <meyering@redhat.com>
2253 msdos: fix syntax in Makefile.djg
2254 * msdos/Makefile.djg (gzip): Change each of two leading 8-space
2255 sequences to a TAB. Reported by Allan Mui.
2257 2009-10-20 Jim Meyering <meyering@redhat.com>
2259 build: do not use AC_PREFIX_PROGRAM
2260 * configure.ac: Do not use "AC_PREFIX_PROGRAM(gzip)".
2261 It would induce behavior that is so surprising that it is probably
2262 universally considered to be buggy, these days. Reported by Zube
2263 in http://thread.gmane.org/gmane.comp.gnu.gzip.bugs/273
2265 2009-10-10 Jim Meyering <meyering@redhat.com>
2267 gzip: add tests for today's bug fix
2268 * tests/trailing-nul: New file. Test for today's fix.
2269 * Makefile.am (TESTS): Add new script.
2270 * NEWS (Bug fixes): Mention it.
2272 2009-10-10 Daniel Barkalow <barkalow@iabervon.org>
2274 gzip: don't fail when there is exactly one trailing NUL byte
2275 * gzip.c (get_method): Require the second byte of magic only if
2276 the first byte was nonzero.
2278 2009-10-09 Jim Meyering <meyering@redhat.com>
2280 build: enable automake color- and parallel-test options
2281 * configure.ac (AM_INIT_AUTOMAKE): Enable color-tests and parallel-tests.
2283 zgrep: portability improvements; exercise "-f -"
2284 * zgrep.in: Adjust loop not to use seq; it's not portable enough.
2285 Fail if we don't find a free file descriptor.
2286 (exists): New function; Use it in place of less portable "test -e".
2287 Testing for existence of /dev/fd/$fd doesn't work on Solaris 10,
2288 since all 256 always exist (as char devices), but testing for
2289 /proc/$$/fd/$fd does work, so do that instead.
2290 * Makefile.am (TESTS): Add tests/zgrep-f.
2291 * tests/zgrep-f: New test; exercise this bug.
2292 * NEWS (Bug fixes): Mention it.
2294 2009-10-09 Carl Worth <cworth@cworth.org>
2296 zgrep: handle "-f -" the same way that it works with grep
2297 Before this change, echo needle|zgrep -f - haystack.gz would not work.
2298 * zgrep.in: When the pattern comes from stdin, redirect it to a
2299 different file descriptor, since we're about to use stdin.
2301 2009-10-09 Jim Meyering <meyering@redhat.com>
2303 zdiff would exit 2 (error) rather than 1 for differences
2304 * zdiff.in: Save and restore cmp's exit status around a case
2305 statement that would otherwise clobber its value.
2306 * NEWS (Bug fixes): Mention it.
2307 * tests/zdiff: New test; exercise both bugs.
2308 * tests/test-lib.sh: New file. From coreutils.
2309 * Makefile.am (EXTRA_DIST): Add tests/test-lib.sh.
2310 (TESTS): Add tests/zdiff.
2311 (TESTS_ENVIRONMENT): Define. From coreutils.
2312 (EXTRA_DIST): Append all $(TESTS).
2314 zdiff: fix malfunction when operating on two gzip'd inputs
2315 zdiff would fail to print differences in two compressed inputs
2316 * zdiff.in: Don't let cmp output mix with echo'd gzip exit
2317 status values. Report and fix from Jörg-Volker Peetz via
2318 <http://bugs.debian.org/434275>
2319 * NEWS (Bug fixes): Mention it.
2321 build: update gnulib submodule to latest
2323 2009-10-07 Jim Meyering <meyering@redhat.com>
2325 build: update gnulib submodule to latest
2327 2009-10-06 Jim Meyering <meyering@redhat.com>
2329 maint: clarify web-doc-update instructions
2330 * README-release: sync a tiny change from coreutils.
2332 2009-10-03 Jim Meyering <meyering@redhat.com>
2334 build: update gnulib submodule to latest
2336 doc: use gnu-web-doc-update module
2337 * bootstrap.conf (gnulib_modules): Add it.
2339 2009-10-02 Jim Meyering <meyering@redhat.com>
2341 doc: describe release procedure
2342 * README-release: New file.
2344 2009-10-01 Jim Meyering <meyering@redhat.com>
2346 maint: make cfg.mk slightly more generic
2347 * cfg.mk (url_dir_list): Don't hard-code "coreutils". Use $(PACKAGE).
2349 2009-09-30 Jim Meyering <meyering@redhat.com>
2351 post-release administrivia
2352 * NEWS: Add header line for next release.
2353 * .prev-version: Record previous version.
2354 * cfg.mk (old_NEWS_hash): Auto-update.
2357 * NEWS: Record release date.
2359 build: update gnulib submodule to latest
2361 maint: update bootstrap script
2362 * bootstrap (with_gettext): Update from coreutils.
2364 maint: pull in two release-related modules from gnulib
2365 * bootstrap.conf (gnulib_modules): Add announce-gen and gnupload.
2367 build: use more gnulib modules for better POSIX compliance
2368 * bootstrap.conf (gnulib_modules): Add modules exposed via
2369 make CFLAGS=-DGNULIB_POSIXCHECK 2>&1 \
2370 |perl -lne '/.* use gnulib module (\S+).*/ and print $1' \
2371 |sort |uniq -c|sort -nr
2372 Add these: calloc close fclose fprintf-posix lstat malloc
2373 perror printf-posix realloc
2375 2009-09-30 Karl Berry <karl@freefriends.org>
2377 doc: update to FDL 1.3, minor clean-up
2378 * NEWS, README, TODO: Update FDL s/1.2/1.3/.
2380 2009-09-28 Karl Berry <karl@freefriends.org>
2382 doc: update gzip.texi
2383 * doc/gzip.texi: FDL 1.3+
2384 Consistently (de)capitalize section names.
2385 "User's" is not correct; seems best to simplify the title.
2386 Throw in some "GNU"'s.
2387 Make direntries be what we actually want.
2390 2009-09-26 Jim Meyering <meyering@redhat.com>
2392 maint: temporarily exempt failing syntax-check tests
2393 * cfg.mk (local-checks-to-skip): Add the list of currently-failing
2394 tests, to exempt them from "make syntax-check".
2396 gzip: don't use an uninitialized file descriptor
2397 gzip interprets an argument of "-" as indicating stdin, but when
2398 "-" is not the first name on the command line, it doesn't work.
2399 * gzip.c (treat_stdin): Initialize "ifd".
2400 Patch and fine description by Lasse Collin in
2401 http://www.mail-archive.com/bug-gzip@gnu.org/msg00213.html
2402 * Makefile.am (check-local): Exercise the fix. Based on the above.
2403 * NEWS (Bug fixes): Mention this.
2405 maint: use a git submodule for gnulib
2406 * .gitmodules: New file, to track gnulib.
2407 * gnulib: New file, created by running this:
2408 git submodule add git://git.sv.gnu.org/gnulib.git gnulib
2410 maint: update existing copyright year lists to include 2009
2411 * bootstrap.conf (gnulib_modules): Add update-copyright.
2413 maint: include <config.h> first in many files
2415 maint: avoid another "make syntax-check" failure
2416 * lib/Makefile.am (match.$(OBJEXT)): Use $(ASCPPPOST), not @ASCPPPOST@.
2418 maint: remove RCS $Id$ variables and comments
2420 maint: change spelling in comments: s/filesystem/file system/
2422 maint: don't use "the the"
2423 * msdos/doturboc.bat: s/the the/the/.
2425 maint: remove trailing blanks
2427 maint: remove useless if-before-free tests
2428 * gzip.c (do_exit): Remove useless if-before-free tests.
2430 maint: remove useless casts to avoid "make syntax-check" failures
2431 * gzip.c (do_exit): Remove anachronistic cast.
2432 * inflate.c (huft_free): Likewise.
2433 * util.c (add_envopt): Likewise.
2434 * vms/vms.c (vms_expand_args): Likewise.
2436 maint: new file: .prev-version
2437 * .prev-version: New file, to record previous version number.
2439 2009-09-06 Jim Meyering <meyering@redhat.com>
2441 build: avoid spurious warnings from clang
2442 * gzip.h (gzip_error): Declare with ATTRIBUTE_NORETURN.
2444 maint: update build-from-scratch infrastructure
2445 * bootstrap: Modernize.
2446 * bootstrap.conf: Modernize.
2449 2009-08-18 Jim Meyering <meyering@redhat.com>
2451 inflate: avoid a leak on a error path
2452 * inflate.c (inflate_dynamic): Don't leak
2454 maint: ignore a few generated files
2455 * lib/.gitignore: ignore more generated files.
2457 tests: add a test for just-fixed bug
2458 * tests/hufts-segv.gz: New file, from bug report.
2459 * Makefile.am (EXTRA_DIST): Add tests/hufts-segv.gz.
2460 (check-local): Exercise the bug.
2462 tests: don't misinterpret a failing test as successful
2463 * Makefile.am (check-local): Exit "1" upon failure, not 0.
2465 2009-08-18 Thiemo Nagel <thiemo.nagel@ph.tum.de>
2467 avoid creating an undersized buffer for the hufts table
2468 A malformed input file can cause gzip to crash with a segmentation
2469 violation or hang in an endless loop.
2470 Reported in <http://bugs.debian.org/507263>.
2471 * NEWS (Bug fixes): Mention it.
2473 2009-08-18 Jim Meyering <meyering@redhat.com>
2475 avoid silent data loss e.g., on NFS, due to unchecked close of stdout
2476 * gzip.c: Include "closein.h".
2477 (main): Use atexit (close_stdin);
2478 * bootstrap.conf (gnulib_modules): Add closein.
2479 Prompted by Mark Kidwell's report and patch in
2480 http://bugs.debian.org/538187
2481 * NEWS (Bug fixes): Mention it.
2482 * */.gitignore: Update.
2484 build: require automake-1.11 and produce xz-compressed tarballs, too
2485 * configure.ac: Require automake-1.11. Use the dist-xz option.
2487 build: avoid non-srcdir build failure
2488 * Makefile.am (gzip.doc.gz): Use $(srcdir)/gzip.doc, not gzip.doc.
2489 Don't redirect directly to $@. Use $(AM_V_GEN).
2490 (gzip.doc, .in): Don't redirect directly to $@. Use $(AM_V_GEN).
2491 * NEWS: Add template header for upcoming release.
2493 build: enable git-version-gen, automake silent rules, generate ChangeLog
2494 * configure.ac (AC_INIT): Use git-version-gen.
2495 Use AM_SILENT_RULES([yes]).
2496 (AM_INIT_AUTOMAKE): Drop gnits; conflicts with git-version-gen versions.
2497 * bootstrap.conf (gnulib_modules): Use getopt-gnu
2498 Ensure ChangeLog exists, for automake.
2499 rather than obsolete "getopt" module.
2500 Add gitlog-to-changelog.
2501 Add git-version-gen.
2502 Add gnu-make, gnumakefile and maintainer-makefile.
2503 * Makefile.am (dist-hook, gen-ChangeLog): New rules, to generate
2504 ChangeLog and insert it into the distribution tarball.
2505 (EXTRA_DIST): Add ChangeLog-2007.
2507 maint: retire the last VC'd ChangeLog file
2508 * ChangeLog-2007: Rename from ChangeLog.
2509 From now on, the ChangeLog file will be generated automatically
2512 maint: rename .cvsignore files to .gitignore
2513 * .gitignore: Renamed from .cvsignore.
2514 * doc/.gitignore: Likewise.
2515 * lib/.gitignore: Likewise.
2516 * m4/.gitignore: Likewise.