document mingw linker fix and close associated bug
[debian/gzip] / ChangeLog
index 0cc702dc9bb079fa26fdac52bcc90b2715e93b4f..2e956c2fe6af67436b35a7ad6f9ca70ce9236816 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
+2018-12-29  Jim Meyering  <meyering@fb.com>
+
+       version 1.10
+       * NEWS: Record release date.
+
+2018-12-23  Paul Eggert  <eggert@cs.ucla.edu>
+
+       build: enable -Wunreachable-code
+       * configure.ac (nw): Remove -Wunreachable-code from the list of
+       disabled warnings, now that all offending statements have been removed.
+
+       maint: remove unreachable code
+       Problem reported by Oracle Developer Studio 12.6.
+       In the old days we needed a return statement at the end of
+       the gzip main function to pacify traditional 'lint', but
+       lint checkers nowadays are smarter.
+       * gzip.c (main):
+       * zip.c (file_read): Remove unreachable code.
+
+2018-12-23  Jim Meyering  <meyering@fb.com>
+
+       maint: use a slightly cleaner expression
+       * gzip.c (do_list): Simplify an expression:
+       - int positive_off_t_width = INT_BUFSIZE_BOUND (off_t) - 2;
+       + int positive_off_t_width = INT_STRLEN_BOUND (off_t) - 1;
+
+2018-12-22  Jim Meyering  <meyering@fb.com>
+
+       build: avoid build failure with --enable-gcc-warnings and latest gcc
+       * gzip.c (do_list): There was a loop to compute the maximum width
+       of a decimal positive off_t value. Replace it with assignment to a
+       constant.  Noticed because gcc 9.0.0 20181219 warned about its use
+       as a printf format-width value.
+       (OFF_T_MAX): Remove now-unused definition.
+
+2018-12-21  Jim Meyering  <meyering@fb.com>
+
+       maint: improve a comment
+       * trees.c (flush_block): Fix grammar/spelling in a comment.
+
+       maint: update gnulib to latest; also update bootstrap and init.sh
+
+       build: make the autoconf-2.63 requirement explicit
+       * configure.ac: AC_PREREQ: Require 2.63, not 2.59.
+       Autoconf-2.63 has been required for some time via gnulib.
+       This merely makes it explicit.
+
+2018-11-30  Paul Eggert  <eggert@cs.ucla.edu>
+
+       gzip: fix use of uninitialized memory
+       Problem reported by Hanno Böck (Bug#33501).
+       * NEWS: Mention this.
+       * inflate.c (inflate_dynamic): Return if code is invalid.
+       Fix by Mark Adler.
+       * tests/hufts: Add test case for the bug.
+
+2018-08-19  Paul Eggert  <eggert@cs.ucla.edu>
+
+       * gzip.c (remove_output_file): Fix typo.
+
+       gzip: fix bug in signal-handling fix
+       Problem reported by Johannes Przybilla (Bug#32375#26).
+       * gzip.c (volatile_strcpy): Source is now pointer-to-volatile too.
+       (remove_output_file): Copy remove_ofname to a private nonvolatile
+       copy so that it can be passed to xunlink safely.
+
+2018-08-06  Paul Eggert  <eggert@cs.ucla.edu>
+
+       Fix some theoretical races in signal handling
+       Problem reported by Johannes Przybilla (Bug#32375).
+       * NEWS: Mention this.
+       * bootstrap.conf (gnulib_modules): Add sigaction.
+       * gzip.c (SA_NOCLDSTOP, sigprocmask, sigset_t)
+       (siginterrupt) [!SA_NOCLDSTOP]: Remove; Gnulib not supplies these.
+       (remove_ofname): New var.
+       (volatile_strcpy): New function.
+       (create_outfile): Use it.
+       (install_signal_handlers, abort_gzip_signal): Assume sigaction.
+       (remove_output_file): New arg SIGNALS_ALREADY_BLOCKED.
+       All uses changed.  Avoid unnecessary (and racy) call
+       to sigprocmask if this new arg is set.
+       (abort_gzip_signal): Assume C89 or better for signal handler type.
+       * gzip.h (RETSIGTYPE): Remove.
+       * lib/.gitignore, m4/.gitignore:
+       Add files brought in by Gnulib sigaction module.  Sort.
+
+2018-08-04  Paul Eggert  <eggert@cs.ucla.edu>
+
+       gzip: port better to mingw again
+       Problem reported by Bdale Garbee (Bug#32305#8).
+       * gzip.c (do_chown): Use HAVE_FCHOWN || HAVE_CHOWN,
+       which is configured, instead of DO_CHOWN, which is not.
+
+2018-08-02  Paul Eggert  <eggert@cs.ucla.edu>
+
+       gzip: make the output more reproducible
+       Problem reported by Bernhard M. Wiedemann (Bug#32342).
+       * NEWS: Mention this.
+       * doc/gzip.texi (Overview, Invoking gzip): Document this.
+       * gzip.c (get_input_size_and_time): New function,
+       which implements the change.
+       (treat_stdin, treat_file): Use it.
+       * tests/reproducible: New test.
+       * tests/Makefile.am (TESTS): Add it.
+
+2018-07-29  Paul Eggert  <eggert@cs.ucla.edu>
+
+       gzip: port better to mingw
+       Problem reported by Bdale Garbee for Debian
+       * gzip.c (do_chown): Don't assume uid_t and gid_t.
+
+2018-07-01  Jim Meyering  <meyering@fb.com>
+
+       maint: update gnulib to latest; also update bootstrap and init.sh
+
+2018-06-30  Jim Meyering  <meyering@fb.com>
+
+       build: remove -Wformat-truncation=2 to avoid avoid false-positive
+       * configure.ac (GNULIB_WARN_CFLAGS): Add -Wformat-truncation=2,
+       to disable it when building gnulib with --enable-gcc-warnings.
+       This avoids what looks like a false positive from GCC 9:
+       strerror_r.c: In function 'rpl_strerror_r':
+       strerror_r.c:453:35: error: 'Unknown error ' directive output \
+        truncated writing 14 bytes into a region of size 2 \
+        [-Werror=format-truncation=]
+                snprintf (buf, buflen, "Unknown error %d", errnum);
+                                        ~~^~~~~~~~~~~~
+       In file included from /usr/include/stdio.h:862,
+                        from ./stdio.h:43,
+                        from strerror_r.c:29:
+       /usr/include/bits/stdio2.h:64:10: note: '__builtin___snprintf_chk' \
+         output between 16 and 26 bytes into a destination of size 2
+          return __builtin___snprintf_chk (__s, __n, __USE_FORTIFY_LEVEL - 1,
+
+2018-01-15  Paul Eggert  <eggert@cs.ucla.edu>
+
+       misc: update --version copyright
+       * gunzip.in, gzexe.in, gzip.c, zcat.in, zdiff.in, zforce.in, zgrep.in:
+       * zless.in, zmore.in, znew.in:
+       Update copyright year in --version output to 2018.
+       This part of the year-number update isn’t automated yet.
+
+2018-01-07  Jim Meyering  <meyering@fb.com>
+
+       maint: post-release administrivia
+       * NEWS: Add header line for next release.
+       * .prev-version: Record previous version.
+       * cfg.mk (old_NEWS_hash): Auto-update.
+
+       version 1.9
+       * NEWS: Record release date.
+
+2018-01-06  Paul Eggert  <eggert@cs.ucla.edu>
+
+       gzexe: port to macOS mktemp
+       Problem reported by Jeffrey Walton (Bug#30000).
+       * gzexe.in, zdiff.in, zgrep.in:
+       Don’t assume that mktemp works when given no arguments,
+       as this is not true for macOS.  Instead, use a syntax
+       that should work with coreutils, NetBSD, and macOS.
+       While we’re in the neighborhood, be more consistent about how program
+       names are used in temporary file names.  Also, watch out for TMPDIR
+       values that are not absolute file names, since they can cause problems
+       (e.g., leading "-").
+
+2018-01-03  Jim Meyering  <meyering@fb.com>
+
+       maint: update gnulib and copyright dates for 2018
+       * gnulib: Update to latest.
+       * bootstrap: Update from gnulib.
+       * all files: Run "make update-copyright".
+
+2017-12-16  Jim Meyering  <meyering@fb.com>
+
+       build: update gnulib to latest
+
+2017-11-24  Paul Eggert  <eggert@cs.ucla.edu>
+
+       maint: zforce and zmore exit status cleanup
+       Problem reported by Nelson H. F. Beebe.
+       * zforce.in, zmore.in: On failure, exit with status 1 instead of
+       with whatever failing status that printf or mv exited with.
+
+2017-11-23  Paul Eggert  <eggert@cs.ucla.edu>
+
+       gzexe: ensure file always exists
+       * gzexe.in: When in a filesystem that does not support symlinks,
+       use rm+cp rather than mv to make backups, so that the argument
+       file always exists.
+
+2017-11-23  Jim Meyering  <meyering@fb.com>
+
+       build: update gnulib to latest
+
+2017-11-16  Jim Meyering  <meyering@fb.com>
+
+       gzexe: work even without the ability to make a hard link
+       * gzexe.in: When ln -f fails to create a "~"-style backup,
+       fall back to using mv -f.
+       Reported by Bruno Haible in http://debbugs.gnu.org/29266
+
+2017-11-15  Jim Meyering  <meyering@fb.com>
+
+       build: make each generated script unwritable
+       * Makefile.am (.in): Ensure that each generated script is unwritable.
+       This makes it less likely that someone (even me) will mistakenly
+       modify one of those generated files.
+
+2017-11-13  Jim Meyering  <meyering@fb.com>
+
+       zless, znew: exit 1 upon --help or --version write failure
+       * zless.in: Exit 1 upon --help or --version write error.
+       * znew.in: Likewise.
+
+2017-11-12  Paul Eggert  <eggert@cs.ucla.edu>
+
+       maint: script diagnostics status cleanup
+       Problem reported by Bruno Haible (Bug#29266#20).
+       * NEWS: Mention this.
+       * gunzip.in, gzexe.in, zcat.in, zcmp.in, zdiff.in, zforce.in:
+       * zgrep.in, zless.in, zmore.in, znew.in:
+       Use printf instead of echo if the argument might contain ‘\’, at
+       least in theory.  Don’t assume printf exits with status 1 on
+       failure; it might be some other positive status.
+       * gzexe.in: Use printf consistently instead of echo, and
+       proscribe it instead of echo.
+
+       tests: don’t be so strict about timestamps
+       * tests/timestamp: We’ve had many false alarms about timestamps
+       that are not gzip problems, but instead are problems with ‘touch’.
+       Attempt to work around them by not trusting ‘touch’ so much.
+       Problems and parts of solutions proposed by Bruno Haible.
+
+2017-11-10  Paul Eggert  <eggert@cs.ucla.edu>
+
+       build: update gnulib submodule to latest
+
+2017-11-09  Jim Meyering  <meyering@fb.com>
+
+       gnulib: update to latest
+
+       maint: use noreturn, not ATTRIBUTE_NORETURN
+       Use gnulib's stdnoreturn module so we can include
+       <stdnoreturn.h> and the "noreturn" helper macro, thus
+       replacing the definition and uses of ATTRIBUTE_NORETURN.
+       * bootstrap.conf (gnulib_modules): Add stdnoreturn.
+       * gzip.h (ATTRIBUTE_NORETURN): Remove definition.
+       Include stdnoreturn.h and use "noreturn" for each
+       ATTRIBUTE_NORETURN-adorned function declaration.
+       * gzip.c (do_exit, try_help): Use "noreturn".
+
+       tests: unpack-invalid: correct and clean up a test
+       * tests/unpack-invalid: There was a logic error that would have
+       caused this test to ignore a failure if first iteration of the
+       loop set fail=1 and the second one reset it to 0.  Also, use
+       "returns_ 1 ...", to require an exit status of 1.
+
+2017-11-07  Paul Eggert  <eggert@cs.ucla.edu>
+
+       gzip: diagnose out-of-range MTIME
+       This seems to be the problem reported by Bruno Haible for GNU/Hurd
+       i386 with touch 8.26 and glibc 2.24 (Bug#29033#20).
+       * NEWS: Document this.
+       * gzip.c (get_method): If MTIME is out of range for
+       this platform, warn and substitute the nearest in-range
+       value, instead of silently ignoring it.
+       (do_list): Remove no-longer-needed test for unknown time stamp.
+
+2017-11-06  Paul Eggert  <eggert@cs.ucla.edu>
+
+       misc: diagnose year-2038 configuration problems
+       * bootstrap.conf (gnulib_modules): Add year2038.
+       * m4/.gitignore: Add year2038.m4[
+
+       maint: remove IMPORT_FROM_GETTEXT
+       * bootstrap.conf (IMPORT_FROM_GETTEXT): Remove.
+       This is a relic from older Gnulib, and has no effect now.
+
+2017-10-29  Jim Meyering  <meyering@fb.com>
+
+       tests/unpack-valid: port to printf that do not grok hex
+       Many versions of printf do not handle hexadecimal in a format string,
+       so this test would fail.
+       * tests/init.cfg (hex_printf_): Copied from grep's tests/init.cfg.
+       * tests/unpack-valid: Use hex_printf_.
+       Reported by Bruno Haible in https://bugs.gnu.org/29033#26
+
+       gnulib: update to latest; also update tests/init.sh from gnulib
+
+       gzip: fix bug with any upper case custom ('-S'-specified) suffix
+       Any user-specified suffix with an upper case
+       letter would fail to match desired file.
+       * gzip.c (get_suffix): First, arrange to have only one return
+       point rather than two. Put a lower-cased (just-malloc'd) copy
+       of z_suffix in the suffix vector, and free it before returning.
+       * tests/upper-suffix: New file.
+       * tests/Makefile.am (TESTS): Add it.
+       * NEWS: Mention it.
+       Reported by meo@xenialab.it in https://bugs.gnu.org/29006
+
+2017-10-16  Paul Eggert  <eggert@cs.ucla.edu>
+
+       gzip: fix bug in unpack EOB check
+       Problem reported by Vidar Holen (Bug#28861).
+       * NEWS: Mention fix.
+       * tests/unpack-valid: New test.
+       * tests/Makefile.am (TESTS): Add it.
+       * unpack.c (build_tree): Report an error if Huffman tree has
+       too few leaves.
+       * unpack.c (unpack): Fix check for EOB.
+       Remove now-unnecessary check for code out of range.
+
+2017-09-19  Jim Meyering  <meyering@fb.com>
+
+       maint: fix "make syntax-check": remove useless HAVE_UTIME_H definitions
+       * tailor.h: Don't define HAVE_UTIME_H.
+
+       maint: avoid "make syntax-check" failure due to old-NEWS modification
+       * cfg.mk (old_NEWS_hash): Update, to reflect recent NEWS correction.
+
+2017-09-19  Paul Eggert  <eggert@cs.ucla.edu>
+
+       gzexe: improve usage diagnostic
+       * gzexe.in (usage): Reword for clarity (Bug#28514).
+
+       misc: update --version copyright
+       * gunzip.in, gzexe.in, gzip.c, zcat.in, zdiff.in, zforce.in, zgrep.in:
+       * zless.in, zmore.in, znew.in: Update copyright year in --version
+       output to 2017.
+
+       maint: prefer HTTPS to HTTP, FTP in URLs
+
+       maint: copy bootstrap from Gnulib
+
+       maint: port to GCC 7.2
+       * configure.ac (WERROR_CFLAGS): Avoid -Wduplicated-branches.
+       * tailor.h (FALLTHROUGH): New macro, taken from Emacs.
+       * gzip.c (main): Use it.
+
+       maint: update .gitignore for recent Gnulib
+
+       build: update gnulib submodule to latest
+
+2017-05-07  Jim Meyering  <meyering@fb.com>
+
+       maint: also distribute a zip-compressed tarball
+       * configure.ac (AM_INIT_AUTOMAKE): Add dist-zip, for
+       those lacking gzip, 7zip, etc.  Suggested by Karl Berry in
+       https://bugs.gnu.org/25538.
+
+2017-03-13  Paul Eggert  <eggert@cs.ucla.edu>
+
+       gzip: port zdiff, zless to Busybox
+       Problem reported by Denys Zagorui (Bug#26088).
+       * tests/zdiff: Check that diff uses POSIX-format output.
+       * zless.in (less_version): Don't exit merely because 'less -V'
+       fails; instead, assume 'less' is compatible with an old version of
+       the original 'less'.  Busybox 'less -V' fails, but apparently its
+       'less' works anyway somehow.
+
+2017-02-06  Jim Meyering  <meyering@fb.com>
+
+       tests: avoid failure when running with no tty
+       * tests/help-version (zcat_setup): Export TERM=dumb, to avoid zless
+       malfunction.  Reported by Assaf Gordon in https://bugs.gnu.org/25636#8
+
+       gnulib: update to latest; and tests/init.sh and bootstrap
+
+       maint: change "time stamp" to "timestamp" globally
+       This avoids a new syntax-check failure.
+       * ChangeLog-2007: Perform that change.
+       * NEWS: Likewise.
+       * algorithm.doc: Likewise.
+       * doc/gzip.texi: Likewise.
+       * gunzip.in: Likewise.
+       * gzip.1: Likewise.
+       * gzip.c: Likewise.
+       * gzip.h: Likewise.
+       * m4/.gitignore: Likewise.
+       * sample/ztouch: Likewise.
+       * tests/timestamp: Likewise.
+       * unzip.c: Likewise.
+       * zip.c: Likewise.
+       * znew.1: Likewise.
+       * cfg.mk: Update the old news hash accordingly.
+
+2017-01-01  Jim Meyering  <meyering@fb.com>
+
+       maint: tweak a distcheck rule
+       * dist-check.mk (my-distcheck): Don't use --disable-nls.
+       That option is now unrecognized.
+
+       maint: update gnulib and copyright dates for 2017
+       * gnulib: Update to latest.
+       * all files: Run "make update-copyright".
+
+2016-11-08  Jim Meyering  <meyering@fb.com>
+
+       maint: use "returns_" rather than explicit comparison with "$?"
+       * tests/zdiff: Use "returns_ 1" rather than testing $? = 1.
+       * tests/hufts: Likewise.
+       * tests/timestamp: Likewise, but s/1/2/.
+
+2016-11-04  Paul Eggert  <eggert@cs.ucla.edu>
+
+       gzip: minor time stamp cleanups
+       * NEWS: Document this.
+       * gzip.c (get_method): Do not warn about MTIME out of range.
+       This should avoid useless chatter on hosts with 32-bit time_t
+       after the year 2038 (!).
+       (do_list): Do not pass junk time stamp to localtime.
+       (copy_stat): Do not report "time stamp restored" if restoration
+       fails.
+
+       gzip: --no-time cleanup
+       Problem reported by Jim Meyering (Bug#24826).
+       * gzip.c (longopts): Remove non-working no-time entry.
+       (help) [UNDOCUMENTED]: Don't document it.
+
+       gzip --no-name: avoid spurious warning
+       Problem reported by Jim Meyering (Bug#24826).
+       * tests/timestamp: Add a test from Jim Meyering to exercise the fix
+       * zip.c (zip): Treat unknown time stamps as 0.
+
+2016-10-24  Jim Meyering  <meyering@fb.com>
+
+       maint: update .gitignore files to ignore more generated files
+
+2016-10-02  Jim Meyering  <meyering@fb.com>
+
+       maint: avoid unwarranted "make syntax-check" failure
+       * tests/timestamp: Reorder "rm" arguments so the doubled-word
+       syntax-check rule does not detect a false positive "in in" here.
+
+       gnulib: update to latest
+
+2016-09-07  Paul Eggert  <eggert@cs.ucla.edu>
+
+       * doc/gzip.texi: Fix off-by-one timestamp.
+
+2016-09-06  Paul Eggert  <eggert@cs.ucla.edu>
+
+       gzip: fix some Y2038 etc. bugs
+       * NEWS: Document this.
+       * gzip.c (get_method): Warn about out-of-range MTIME,
+       and ignore it instead of relying on possibly-undefined behavior.
+       * tests/Makefile.am (TESTS): Add timestamp.
+       * tests/timestamp: New test.
+       * zip.c (zip): Warn about out-of-range file time stamp.
+
+2016-08-29  Jim Meyering  <meyering@fb.com>
+
+       maint: fix gzip-specific syntax-check rule
+       * cfg.mk (sc_gzip_copyright_check): This rule had two problems.
+       It was failing erroneously (the copyright date in gzip.c is fine),
+       yet it was complaining.  The first problem is that the rule's
+       diagnostic mentioned the wrong file: lib/version-etc.c, rather than
+       ./gzip.c. The second problem is that it specified this file name
+       via "in_files" rather than the "in_vc_files" variable.
+
+2016-06-12  Paul Eggert  <eggert@penguin.cs.ucla.edu>
+
+       gzip: fix port to Atari by not defining ASMV
+       Problem reported by Helmut Karlowski in: http://bugs.gnu.org/23751
+       * tailor.h (ASMV) [ATARI || atarist]: Do not define.
+
+2016-06-12  Paul Eggert  <eggert@cs.ucla.edu>
+
+       gzip: drop mentions of Amiga, VMS
+       These platforms were not supported anyway, and their code was
+       suffering from bitrot.  This patch may also fix some file name
+       glitches on MS-Windowsish platforms.
+       * bootstrap.conf (gnulib_modules): Add dosname.
+       * gzip.c: Include dosname.h.
+       (shorten_name, treat_dir): Use last_component rather than looking
+       at path separators by hand.
+       * tailor.h: Remove sections on porting to VMS and to Amiga,
+       since dosname.h doesn't support these platforms anyway.
+       (PATH_SEP2, PATH_SEP3, STDC_HEADERS, SUFFIX_SEP, RECORD_IO)
+       (HAVE_CHOWN, HAVE_LSTAT, HAVE_SYS_DIR_H, direct): Remove.  All
+       uses removed.  Many uses replaced by calls to ISSLASH and/or
+       last_component.
+
+2016-04-29  Jim Meyering  <meyering@fb.com>
+
+       maint: arrange for better URLs in generated announcement message
+       * cfg.mk (url_dir_list): Define.  I had been correcting the generated
+       URLs by hand, just before the announcement.  This is better.
+
+2016-04-26  Jim Meyering  <meyering@fb.com>
+
+       maint: post-release administrivia
+       * NEWS: Add header line for next release.
+       * .prev-version: Record previous version.
+       * cfg.mk (old_NEWS_hash): Auto-update.
+
+       version 1.8
+       * NEWS: Record release date.
+
+       gnulib: update to latest
+
+2016-04-19  Paul Eggert  <eggert@cs.ucla.edu>
+
+       gzip: simplify by closing ourselves
+       This simplifies the previous fix, by avoiding the use of the
+       closein module.  That module was problematic, as gzip normally
+       does not use stdio for output and never uses it for input.
+       Also, it is a heavyweight module, as it drags many files into lib
+       (c-ctype.c, c-ctype.h, closein.c, closein.h, closeout.c, closeout.h,
+       close-stream.c, close-stream.h, config.charset, c-strcasecmp.c,
+       c-strcaseeq.h, c-strcase.h, c-strncasecmp.c, fpending.c, fpending.h,
+       freadahead.c, freadahead.h, localcharset.c, localcharset.h, mbrtowc.c,
+       mbsinit.c, quotearg.c, quotearg.h, quote.h, ref-add.sin, ref-del.sin,
+       streq.h, wctype-h.c, wctype.in.h) and into m4 (closein.m4, closeout.m4,
+       close-stream.m4, codeset.m4, configmake.m4, fpending.m4, freadahead.m4,
+       glibc21.m4, localcharset.m4, locale-fr.m4, locale-ja.m4, locale-zh.m4,
+       mbrtowc.m4, mbsinit.m4, mbstate_t.m4, quotearg.m4, wctype_h.m4),
+       and these files are thus no longer needed.
+       * bootstrap.conf (gnulib_modules): Remove closein.
+       * gzip.c: Don't include closein.h.
+       (stdin_was_read): New static var.
+       (main): Don't use close_stdin.
+       Invoke finish_out to exit after outputting via stdio's stdout.
+       Close stdin after reading it.
+       Restore previous way of closing stdout.
+       (treat_stdin): Record that stdin was read.
+       (finish_out): New function.
+
+       gzip: fix bug with -l output to pipes
+       Problem reported by Christian Franke via Eric Blake in:
+       http://bugs.gnu.org/23314
+       * NEWS: Mention this.
+       * gzip.c (main): Do not close stdout twice when given -l.
+       Instead, -l now just fflushes stdout, so that fdatasync
+       can synchronize it if --synchronize is also specified.
+       * tests/list: New test case.
+       * tests/Makefile.am (TESTS): Add it.
+
+2016-03-28  Paul Eggert  <eggert@cs.ucla.edu>
+
+       Port to Oracle Solaris Studio 12.4
+       Problem reported by Kiyoshi KANAZAWA in: http://bugs.gnu.org/23133
+       * NEWS: Document this.
+       * configure.ac (ASMV): Do not define if NO_ASM is
+       anywhere in DEFS; it doesn't need to be surrounded by white space.
+       * lib/match.c: Do not use x86 version if __x86_64__ is defined.
+
+2016-03-27  Jim Meyering  <meyering@fb.com>
+
+       maint: post-release administrivia
+       * NEWS: Add header line for next release.
+       * .prev-version: Record previous version.
+       * cfg.mk (old_NEWS_hash): Auto-update.
+
+       version 1.7
+       * NEWS: Record release date.
+
+2016-03-26  Paul Eggert  <eggert@cs.ucla.edu>
+
+       Port to NetBSD 7.0
+       Problem reported by Assaf Gordon in: http://bugs.gnu.org/23107#13
+       * gzexe.in, zdiff.in, zgrep.in: Don't rely on mktemp -t,
+       as it has a different meaning in NetBSD.
+
+       * tests/init.sh: Sync from Gnulib.
+
+       Port to Alpine Linux which uses Busybox
+       * Makefile.am (check-local): Use plain diff rather than
+
+2016-03-24  Jim Meyering  <meyering@fb.com>
+
+       gzip: also honor GZIP=--rsyncable
+       * gzip.c (main): Also accept --rsyncable when it is specified
+       via the GZIP environment variable.
+       I noticed this when gzip's "make dist" failed because maint.mk
+       detected that gzip now honors --rsyncable, yet when it set GZIP_ENV
+       to include that, and that propagated via automake-generated code
+       to the GZIP setting used in the "make dist" rule, there, it was not
+       honored, and caused "make dist" to fail.
+
+2016-03-21  Paul Eggert  <eggert@cs.ucla.edu>
+
+       Fix typo in previous patch
+
+       Port to Solaris 11 /bin/sh
+       * m4/shell.m4 (AC_PROG_SHELL): Reject Solaris 11 /bin/sh.
+       A problem was reported by Nelson H. F. Beebe for OpenIndiana.
+       I reproduced a problem with different symptoms on Solaris 11.
+       Switching to Bash fixed it, and I hope this fixes it for
+       OpenIndiana too, since both problems appear to be shell-related.
+
+2016-03-18  Paul Eggert  <eggert@cs.ucla.edu>
+
+       zgrep: with -f SPECIAL, read SPECIAL just once
+       Problem reported by Fulvio Scapin in: http://bugs.gnu.org/22945
+       * NEWS: Document this.
+       * tests/zgrep-f: Add a test.
+       Adjust a test to cover the case of more than one line in -f's input.
+       * zgrep.in (with_filename): With -f FILE, if FILE is stdin or not
+       a regular file, copy it into a temporary and use the temporary.
+
+2016-03-15  Paul Eggert  <eggert@cs.ucla.edu>
+
+       gzip: port to AIX 7.1 + xlc V12.1
+       * inflate.c, unlzw.c, util.c: Include tailor.h after including any
+       system include file that might in turn include signal.h for the
+       first time, so that SIGPIPE is not #defined to 0 prematurely,
+       which clashes with signal.h's SIGPIPE.
+
+2016-03-15  Jim Meyering  <meyering@fb.com>
+
+       gnulib: update to latest
+
+       maint: don't ignore gitlog-to-changelog failure
+       * Makefile.am (gen-ChangeLog): Don't ignore failure of
+       gitlog-to-changelog. This syncs to coreutils' copy of this rule.
+
+2016-03-06  Paul Eggert  <eggert@cs.ucla.edu>
+
+       gzip: pacify clang
+       * gzip.c (do_list): Use 2D array of char for month abbreviations,
+       as this is clearer anyway, and it pacifies Clang.  Problem reported
+       by Assaf Gordon in: http://bugs.gnu.org/22900#40
+
+2016-03-06  Jim Meyering  <meyering@fb.com>
+
+       tests: port to systems for which ":" is not the PATH separator
+       * Makefile.am (new_path): New variable.
+       (check-local): Use $(PATH_SEPARATOR) rather than a literal ":",
+       to avoid "make syntax-check" failure.
+
+2016-03-06  Paul Eggert  <eggert@cs.ucla.edu>
+
+       doc: minor --rsyncable doc fixes
+       * doc/gzip.texi (Sample): Mention --rsyncable.
+       * gzip.c (help): Sort and do not capitalize the new --rsyncable
+       help string.
+
+       gzip: minor zgrep cleanup
+       * zgrep.in: Simplify previous change.
+
+       gzip: port zgrep to Solaris 11.2
+       Problem reported by Assaf Gordon in: http://bugs.gnu.org/22900#11
+       * zgrep.in: Port to Solaris 11.2 /bin/sh (ksh 93u 2011-02-08),
+       where $? is 256+SIG when a process was killed with signal SIG, and
+       where 'exit 257' is equivalent to 'exit 1'.  Apparently some other
+       sh implementations use 256+128+SIG.  So, instead of using plain
+       'exit $?', use the equivalent of 'exit ((128 * (128 <= $?)) + $? %
+       128)' within the script, and use the equivalent of 'kill -$($? %
+       128)' at the top level if the exit status is 128 or more.
+
+       gzip: remove --__bindir
+       * NEWS: Document this.
+       * gzexe.in, gunzip.in, zcat.in, zcmp.in, zdiff.in, zegrep.in:
+       * zfgrep.in, zforce.in, zgrep.in, zless.in, zmore.in, znew.in:
+       Remove support for undocumented --__bindir option.  Callers can
+       set PATH instead; that's less error-prone.  This fixes some
+       'make check' failures on my Solaris 11 box, which occurred
+       because the test scripts were mistakenly testing the installed
+       gzip rather than the gzip in the working directory.
+       * Makefile.am (.in): Don't replace bindir.
+       (check-local): Set PATH instead of using --__bindir.
+       * tests/help-version (gunzip_setuphelp, gzexe_setuphelp)
+       (zcat_setuphelp, zcmp_setuphelp, zdiff_setuphelp)
+       (zegrep_setuphelp, zfgrep_setuphelp, zforce_setuphelp)
+       (zgrep_setuphelp, zless_setuphelp, zmore_setuphelp)
+       (znew_setuphelp): Remove.  All uses removed.
+       (lbracket_setup): Default args to empty.
+
+2016-03-04  Jim Meyering  <meyering@fb.com>
+
+       tests: fix "make check" failure on AIX 7.1
+       * tests/Makefile.am (TESTS_ENVIRONMENT): Modernize:
+       remove unused shell_or_perl_ function, and use an
+       export_with_values function as grep does, to remove
+       a lot of duplication.
+       Reported by Assaf Gordon in http://debbugs.gnu.org/22900
+
+2016-03-02  Rusty Russell  <rusty@rustcorp.com.au>
+
+       gzip: support the --rsyncable option
+       * deflate.c: Include verify.h.
+       (RSYNC_WIN, RSYNC_SUM_MATCH): Define.
+       (rsync_sum, rsync_chunk_end): Declare file-scoped globals.
+       (lm_init): Initialize globals.
+       (fill_window): Update rsync_chunk_end.
+       (rsync_roll): New function.
+       (RSYNC_ROLL): New macro.
+       (FLUSH_BLOCK): Update for new "pad" parameter.
+       (deflate_fast): Use RSYNC_ROLL and flush/pad.
+       (deflate): Likewise.
+       * trees.c (flush_block): Add "pad" parameter.
+       * gzip.c (rsync): New global.
+       (RSYNCABLE_OPTION, longopts, help): Add the option.
+       (main): Set the new global.
+       * gzip.h (rsync): Declare new global.
+       (flush_block): Update prototype.
+       * doc/gzip.texi: Document it.
+       * gzip.1: Likewise.
+       * bootstrap.conf: Use verify module.
+       * NEWS (New feature): Mention it.
+       * Makefile.am (check-local): Add tests and use AM_V__* command-
+       hiding opions. Reported against Debian here:
+       https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=118118
+
+2016-02-28  Jim Meyering  <meyering@fb.com>
+
+       maint: dist-check.mk: remove .deps dirs before comparing
+       "make distcheck" with automake-from-trunk would fail like this:
+         ...
+         Only in /gz/tests/torture/gzip/test/gzip-1.6.42-9d47.old: .deps
+         Only in /gz/tests/torture/gzip/test/gzip-1.6.42-9d47.old/lib: .deps
+         Only in /gz/tests/torture/gzip/test/gzip-1.6.42-9d47.old/lib/glthread: .deps
+       * dist-check.mk (my-distcheck): Remove all .deps directories before
+       comparing the two hierarchies.
+
+2016-02-28  Paul Eggert  <eggert@cs.ucla.edu>
+
+       misc: update --version copyright
+       * gunzip.in, gzexe.in, zcat.in, zdiff.in, zforce.in, zgrep.in:
+       * zless.in, zmore.in, znew.in: Update copyright year in --version
+       output to 2016.
+
+       gzip: new option --synchronous
+       This follows up on the earlier patch to avoid data loss near the
+       system crashes.  It makes the new behavior optional, with the
+       default off.  See: http://bugs.gnu.org/22768
+       * NEWS, doc/gzip.texi (Sample, Invoking gzip), gunzip.in (usage):
+       * gzip.1, zcat.in (usage):
+       Document this.
+       * gzip.c (synchronous): New static var.
+       (SYNCHRONOUS_OPTION): New constant.
+       (longopts, help, main, treat_file): Add support for --synchronous.
+
+       gzip: use constants, not fileno
+       * gzip.c (main, treat_stdin, treat_file, get_method)
+       (check_ofname): Prefer STDIN_FILENO to fileno (stdin),
+       and similarly for STDOUT_FILENO.
+
+       gzip: fdatasync output dir before unlinking
+       This follows up on the earlier patch to avoid data loss near
+       the system crashes.  See: http://bugs.gnu.org/22768
+       * bootstrap.conf (gnulib_modules): Add dirname-lgpl, fdatasync,
+       openat-safer, unistd-safer, unlinkat.
+       * gzip.c: Include stddef.h, dirname.h.
+       Include fcntl--.h instead of fcntl-safer.h.
+       (RW_USER): Remove; no longer needed.
+       (dfname, dfd): New static vars.
+       (dot): New static const.
+       (atdir_eq, atdir_set): New functions.
+       (treat_file): Also fdatasync the output directory, if !keep.
+       (treat_file, create_outfile, open_and_stat):
+       Use dir fd for unlinkat and openat, if possible.
+       (open_and_stat): Omit mode argument, since it was always the
+       same.  All callers changed.
+       * lib/.gitignore, m4/.gitignore: Add new gnulib files.
+       * tailor.h (PROTO, NO_STDIN_FSTAT, OPEN): Remove.  Remove MACOS
+       section, as this stuff would not work anyway now, and circa 2001
+       Apple stopped supporting Mac OS 9 and earlier.
+       * zip.c: Do not include unistd.h and fcntl.h, as this file does
+       not directly use any symbols defined by those headers.
+
+2016-02-22  Paul Eggert  <eggert@cs.ucla.edu>
+
+       fsync output file before closing
+       Problem reported by Yanyan Jiang 蒋炎岩 in: http://bugs.gnu.org/22768
+       * NEWS: Document this.
+       * bootstrap.conf (gnulib_modules): Add fsync.
+       * gzip.c (treat_file): Call fsync just before closing the output.
+       * lib/.gitignore, m4/.gitignore: Add fsync-related gnulib files.
+
+2016-01-22  Jason Leschnik  <jason@leschnik.me>
+
+       doc: correct a diagnostic in man page to match actual
+       * gzip.1: s/no change/unchanged/
+       This addresses http://debbugs.gnu.org/22413
+
+2016-01-01  Jim Meyering  <meyering@fb.com>
+
+       maint: update copyright year, bootstrap, init.sh
+       Run "make update-copyright" and then...
+
+       * gzip.c: Transform the copyright notice via s/2015/2016/.
+       * gnulib: Update to latest.
+       * tests/init.sh: Update from gnulib.
+       * bootstrap: Likewise.
+
+2015-11-01  Jim Meyering  <meyering@fb.com>
+
+       maint: avoid three warnings from the very latest gcc-built-from-git
+       * unzip.c (unzip): Correct two format strings to match the types of the corresponding arguments.
+       * unlzw.c (unlzw): Cast an "int" to unsigned to match expected type of %x.
+
+2015-08-24  Jim Meyering  <meyering@fb.com>
+
+       maint: adjust copyright notices in *.in files to be consistent
+       The copyright year ranges in *.in files were not being updated,
+       because of a missing ", Inc." suffix.  Add that, run
+       run "make udpate-copyright", and ensure 2010..2015 year
+       ranges are covered.
+       * gunzip.in: Update copyright notice and year ranges.
+       * gzexe.in: Likewise.
+       * zcat.in: Likewise.
+       * zdiff.in: Likewise.
+       * zforce.in: Likewise.
+       * zgrep.in: Likewise.
+       * zless.in: Likewise.
+       * zmore.in: Likewise.
+       * znew.in: Likewise.
+
+2015-08-24  Jim Meyering  <meyering@fb.com>
+
+       build: avoid -Wshift-negative-value warning
+       Configured with --enable-gcc-warnings, a gcc-6.x build would fail with this:
+
+         gzip.c:118:32: error: left shift of negative value
+          #define OFF_T_MIN (~ (off_t) 0 << (sizeof (off_t) * CHAR_BIT - 1))
+
+       * gzip.c [OFF_T_MAX]: Define in terms of TYPE_MAXIMUM, not OFF_T_MIN.
+       [OFF_T_MIN]: Remove now-unused definition.
+       Include "intprops.h" for definiton of TYPE_MAXIMUM.
+       * bootstrap.conf (gnulib_modules): Add intprops.
+
+2015-07-30  Jim Meyering  <meyering@fb.com>
+
+       maint: remove dead code
+       This package has not been compilable with -DCRYPT
+       since commit v1.4-82-g9d1b943.  Remove final vestiges.
+       * bits.c (copy_block) [CRYPT]: Remove #ifdef'd code.
+       * inflate.c (NEXTBYTE) [CRYPT]: Likewise.
+       Prompted by a report from Flávio Medeiros
+       that HEADER and T might be used uninitialized.
+
+2015-03-17  Paul Eggert  <eggert@cs.ucla.edu>
+
+       gzip: make the GZIP env var obsolescent
+       * NEWS, gzip.1:
+       * doc/gzip.texi (Environment, Tapes): Document this.
+       * gzip.c (args): Remove static var; no longer needed now that
+       'main' frees it.  All uses removed.
+       (ENV_OPTION, shortopts): New constants.
+       (main): Warn about nontrivial uses of GZIP.  Reject dangerous uses.
+       * tests/gzip-env: New test case.
+       * tests/Makefile.am (TESTS): Add it.
+       * util.c (add_envopt): Create new vector instead of adding to old
+       one.  Only use changed.
+
+2015-03-13  Paul Eggert  <eggert@cs.ucla.edu>
+
+       maint: adjust to recent gnulib
+       * doc/.gitignore: Add gendocs_template_min.
+       * lib/.gitignore: Add assure.h.
+
+2015-02-08  Jim Meyering  <meyering@fb.com>
+
+       maint: ensure that --version's copyright date is current
+       * cfg.mk (sc_gzip_copyright_check): Ensure we keep this copyright
+       year number up to date.  Reported by Paul Eggert.
+       * gzip.c (license_msg): Include only the current year number,
+       as is done in nearly every other program.
+
+       gnulib: update to latest
+
+2015-01-01  Jim Meyering  <meyering@fb.com>
+
+       maint: update copyright year ranges to include 2015; update gnulib
+
+2014-11-10  Jim Meyering  <meyering@fb.com>
+
+       maint: move new NEWS entry into block for upcoming release
+       * NEWS: Move the latest NEWS entry from the block for gzip-1.6
+       into the block for the upcoming release.
+
+2014-11-10  Paul Eggert  <eggert@cs.ucla.edu>
+
+       gzip: adjust -v output when -k is also specified
+       Problem reported by Eric Benoit in: http://bugs.gnu.org/16401
+       * gzip.c (treat_file): When keeping a file, don't say it's replaced.
+       * NEWS: Document this.
+       * tests/keep: Test this.
+
+2014-11-10  Jim Meyering  <meyering@fb.com>
+
+       maint: enable more syntax checks
+       * cfg.mk (local-checks-to-skip): Remove several rule names from this
+       list, thus enabling the corresponding checks.  To fix some, I made
+       syntactic changes to source files.  In other cases, I exempted certain
+       files from the checks.
+       Add exemptions for these:
+         sc_prohibit_atoi_atof = ^(gzip|sample/sub)\.c$$
+         sc_space_tab = ^lib/match\.c$$
+         sc_useless_cpp_parens = ^(lib/match\.c|tailor\.h)$$
+       * configure.ac: Add quotes to fix under-quoting.
+       * deflate.c: Remove unnecessary cpp parentheses.
+       * tests/Makefile.am (TEST_ENVIRONMENT): Remove space-before-TAB.
+       * unlzw.c: Change some TABs to spaces.
+
+       maint: avoid false positive match in check for double semicolon
+       * cfg.mk (exclude_file_name_regexp--sc_prohibit_double_semicolon):
+       Exempt the file, lib/match.c, from gnulib's new double-semicolon
+       check.
+
+       gnulib+bootstrap: update to latest
+       * gnulib: Update the submodule.
+       * bootstrap: Update from gnulib.
+
+2014-10-10  Paul Eggert  <eggert@cs.ucla.edu>
+
+       tests: use local dir for output
+       Reported by Kiyoshi KANAZAWA in: http://bugs.gnu.org/18679
+       * tests/unpack-invalid: Use local directory, not /tmp, for output.
+
+2014-08-10  Paul Eggert  <eggert@cs.ucla.edu>
+
+       gzip: fix --suffix=z bug (Bug#18239)
+       * gzip.c (get_suffix): Put --suffix string at the end
+       of the list of suffixes if it is a suffix of one one them.
+       * tests/z-suffix: New file.
+       * tests/Makefile.am (TESTS): Add it.
+
+2014-06-12  Paul Eggert  <eggert@cs.ucla.edu>
+
+       zgrep: exit with status 0 if a file matches and there's no trouble
+       Reported by Pavel Raiskup in: http://bugs.gnu.org/17760
+       * zgrep.in (res): Treat exit status 0 to be greater than 1.
+       Also, exit immediately on software configuration error.
+
+2014-06-07  Paul Eggert  <eggert@cs.ucla.edu>
+
+       doc: use UTF-8 in the manual
+       * doc/gzip.texi: Switch to UTF-8 encoding.  Fix ASCIIisms.
+       Don't use @sc; plain caps are fine for GNU manuals.
+
+       maint: update .gitignore files
+       * lib/.gitignore, m4/.gitignore: Adjust to match current sources.
+       Also, sort.
+
+2014-06-07  Jim Meyering  <meyering@fb.com>
+
+       maint: udpate all copyright notices via "make update-copyright"
+
+       maint: update copyright year range in gzip.texi
+       * doc/gzip.texi: Update copyright date.
+
+       maint: update gnulib to latest and adapt streamsavedir usage
+       * gnulib: Update module to latest.
+       * gzip.c (treat_dir): Gnulib's streamsavedir API has changed:
+       call it with a new argument, SAVEDIR_SORT_NONE, to retain the
+       preceding behavior.
+
+2014-03-06  Paul Eggert  <eggert@cs.ucla.edu>
+
+       zless: improve gzip failure checking, and port to new -V format
+       Problem reported by Jaroslaw Weglinski, and LESSOPEN change
+       suggested by Mark Nudelman, in: http://bugs.gnu.org/16951
+       This doesn't fix bug 16951 entirely, as 'less' needs to be changed
+       too, but it's a start.
+       * zless.in (check_exit_status): New var.
+       (LESSOPEN): Use it.
+       (use_input_pipe_on_stdin): Adjust to output format on Fedora 20,
+       where 'less -V' outputs "less 458 (POSIX regular expressions)"
+       on the first line.
+
+2013-10-24  Paul Eggert  <eggert@cs.ucla.edu>
+
+       gzip: fix permissions issue on Solaris-like systems
+       I.e., on systems that let users give files away.
+       * gzip.c (do_chown): New function.
+       (copy_stat): Use it, to change the group, then the permissions,
+       then the owner.  Idea suggested by Vladimir Marek in
+       <http://bugs.gnu.org/15672#11>
+
+2013-10-03  Paul Eggert  <eggert@cs.ucla.edu>
+
+       znew: avoid denial-of-service issue
+       Reported by Rich Burridge in <http://bugs.gnu.org/15522>.
+       * znew.in: Rewrite to avoid the need for a temporary file in /tmp.
+       That way, we avoid the need for set -C
+       and worrying about denial of service.
+       Use touch -r and chmod --reference rather than cpmod.
+       Assume cp -p works, as it's now universal.
+       Quote 'echo' args better, while we're at it.
+       (warn, tmp, cpmod, cpmodarg): Remove.
+       (GZIP): Unset, so that we needn't test for gzip extension.
+       (ext): Now always '.gz'.
+       * znew.1: Document the change of implementation assumptions.
+
+2013-06-19  Paul Eggert  <eggert@cs.ucla.edu>
+
+       Fix spelling typo in newly-added comment.
+
+       tests: zgrep-signal race condition fix
+       * tests/zgrep-signal: Check that Perl supports dup2.
+       (exec_with_SIGPIPE_SIGDFL): Remove.
+       (write_to_dangling_pipe): Simplify by moving more of it into Perl.
+       Fix race condition, where subcommand writes to a pipe before the ":"
+       command exits.  Problem reported by Thorsten Glaser in
+       <http://lists.gnu.org/archive/html/bug-gzip/2013-06/msg00028.html>.
+
+2013-06-12  Paul Eggert  <eggert@cs.ucla.edu>
+
+       zgrep: usage should say which grep options are not supported
+       * zgrep.in (usage): Document which grep options are not supported.
+       Problem reported by Liron Paryente in
+       <http://lists.gnu.org/archive/html/bug-grep/2013-06/msg00005.html>.
+
+2013-06-11  Paul Eggert  <eggert@cs.ucla.edu>
+
+       gzip: port util.c to Compaq C V6.5-303
+       * util.c (crc_32_tab): Move definition to front, since this
+       compiler doesn't allow declarations of static arrays with
+       incomplete types.  Problem reported by Steven M. Schweda in
+       <http://lists.gnu.org/archive/html/bug-gzip/2013-06/msg00010.html>.
+
+       tests: zgrep-context assumes grep knows context
+       * tests/Makefile.am (TESTS_ENVIRONMENT): Pass GREP too.
+       * tests/zgrep-context: Check that the underlying grep supports
+       context options.  Problem reported by Steven M. Schweda in
+       <http://lists.gnu.org/archive/html/bug-gzip/2013-06/msg00010.html>.
+
+       doc: zgrep exit status, unsupported options
+       * zgrep.1 (EXIT STATUS, BUGS): New sections.
+       Problem reported by Bdale Garbee in
+       <http://lists.gnu.org/archive/html/bug-gzip/2013-06/msg00007.html>.
+
+       maint: port to platforms lacking SIGPIPE
+       * tailor.h (SIGPIPE): Define to 0 if not defined.  This fixes a
+       porting bug introduced as part of 2012-11-16 syntax-check cleanup.
+       Problem reported by Bdale Garbee in
+       <http://lists.gnu.org/archive/html/bug-gzip/2013-06/msg00006.html>.
+
 2013-06-09  Jim Meyering  <meyering@fb.com>
 
+       maint: post-release administrivia
+       * NEWS: Add header line for next release.
+       * .prev-version: Record previous version.
+       * cfg.mk (old_NEWS_hash): Auto-update.
+
        version 1.6
        * NEWS: Record release date.