X-Git-Url: https://git.gag.com/?a=blobdiff_plain;f=ChangeLog;h=545e057655e2d75d1430c39700c86da9bf60cb41;hb=c60347c6dcc052e8be59f8b449ba8852cb8d3cb4;hp=ae6ed81f5b4adf203bb60f64c5f624b53a9bbb4d;hpb=4ee107046a0ffd91f6c60c787326a5e27b799f6d;p=debian%2Fgzip diff --git a/ChangeLog b/ChangeLog index ae6ed81..545e057 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,1137 @@ +2018-01-07 Jim Meyering + + version 1.9 + * NEWS: Record release date. + +2018-01-06 Paul Eggert + + 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 + + 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 + + build: update gnulib to latest + +2017-11-24 Paul Eggert + + 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 + + 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 + + build: update gnulib to latest + +2017-11-16 Jim Meyering + + 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 + + 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 + + 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 + + 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 + + build: update gnulib submodule to latest + +2017-11-09 Jim Meyering + + gnulib: update to latest + + maint: use noreturn, not ATTRIBUTE_NORETURN + Use gnulib's stdnoreturn module so we can include + 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 + + 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 + + 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 + + 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 + + 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 + + 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 + + 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 + + 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 + + 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 + + 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 + + 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 + + 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 + + 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 + + maint: update .gitignore files to ignore more generated files + +2016-10-02 Jim Meyering + + 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 + + * doc/gzip.texi: Fix off-by-one timestamp. + +2016-09-06 Paul Eggert + + 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 + + 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 + + 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 + + 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 + + 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 + + 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 + + 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 + + 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 + + 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 + + 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 + + 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 + + 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 + + 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 + + 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 + + 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 + + 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 + + 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 + + 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 + + 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 + + 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 + + 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 + + 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 + + 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 + + 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 + + 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 + + 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 + + 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 + + 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 + + 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 + + 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 + + maint: adjust to recent gnulib + * doc/.gitignore: Add gendocs_template_min. + * lib/.gitignore: Add assure.h. + +2015-02-08 Jim Meyering + + 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 + + maint: update copyright year ranges to include 2015; update gnulib + +2014-11-10 Jim Meyering + + 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 + + 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 + + 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 + + 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 + + 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 + + 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 + + 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 + + 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 + + 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 + + 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 + + +2013-10-03 Paul Eggert + + znew: avoid denial-of-service issue + Reported by Rich Burridge in . + * 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 + + 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 + . + +2013-06-12 Paul Eggert + + 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 + . + +2013-06-11 Paul Eggert + + 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 + . + + 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 + . + + doc: zgrep exit status, unsupported options + * zgrep.1 (EXIT STATUS, BUGS): New sections. + Problem reported by Bdale Garbee in + . + + 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 + . + +2013-06-09 Jim Meyering + + 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. + + build: avoid automake warning that suggests use of subdir-objects + * configure.ac (AM_INIT_AUTOMAKE): Use the subdir-objects option. + + build: avoid warning about deprecated use of automake's ACLOCAL_AMFLAGS + * Makefile.am (ACLOCAL_AMFLAGS): Don't use this deprecated variable. + * configure.ac: Do this instead: AC_CONFIG_MACRO_DIR([m4]). + + build: use more portable shell syntax in search of working shell + * m4/shell.m4: Adjust sh/case syntax not to evoke a syntax + error from Solaris 10's /bin/sh. + + build: update gnulib to latest, and bootstrap + +2013-05-28 Jim Meyering + + tests: exercise the new --keep option + * tests/keep: New file. + * tests/Makefile.am (TESTS): Add it. + +2013-05-28 Rodrigo Campos + + gzip: add "--keep" option to retain (don't delete) input files + gzip now accepts the --keep (-k) option, for consistency with tools + like xz, lzip and bzip2. With this option, gzip no longer removes + named input files when compressing and decompressing. + * doc/gzip.texi: Document it. + * gzip.1: Likewise. + * gunzip.in: Likewise. + * NEWS: Likewise. + * gzip.c: Add support for "--keep". + +2013-04-15 Paul Eggert + + tests: redo patch for non-GNU gzip installed in /usr/local/bin + Problem with previous patch reported by Antonio Diaz Diaz in + . + * 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): New functions, used when testing even --help. + (zdiff_setup, zcat_setup, znew_setup, zgrep_setup, gzexe_setup): + Use gzip_setuphelp to set --__bindir. + +2013-04-10 Paul Eggert + + tests: work even if non-GNU gzip is installed in /usr/local/bin + Problem reported by Antonio Diaz Diaz in + . + * tests/help-version (zdiff_setup, zcat_setup, znew_setup, zgrep_setup) + (gzexe_setup): Pass --__bindir so that subsidiary programs are our + own's, not /usr/local/bin's. This requires using 'eval' on the result. + (zcmp_setup, gunzip_setup, zmore_setup, zless_setup, zforce_setup) + (zegrep_setup, zfgrep_setup): Invoke one of the other setup functions, + to make the patterns more obvious and simplify future maintenance. + * zcmp.in, zegrep.in, zfgrep.in: Pass __bindir to subsidiary program. + + maint: adjust to Gnulib, Automake changes + * .gitignore: Add *.trs. + * lib/.gitignore: Add unused-parameter.h. + + tests: port to Solaris 10 /bin/sh + * tests/Makefile.am (TESTS_ENVIRONMENT): + Use "FOO=val; export FOO" rather than "export FOO=val", + as the latter form doesn't work with Solaris /bin/sh. + +2013-02-25 Paul Eggert + + gzip: port to DMF file systems + * util.c (read_buffer): When reading a file with O_NONBLOCK, if + the read fails with errno==EAGAIN, clear O_NONBLOCK and try again. + Problem reported by Vitezslav Cizek in + . + +2013-02-05 Paul Eggert + + gzip: fix bug where you say "n" and gzip acts as if you said "y" + Problem reported for GCC 4.7 x86-64 -O2 by Allan McRae in + . + * NEWS: Document this. Use consistent format in earlier note. + * gzip.c: Include yesno.h. + * gzip.h (yesno): Remove decl; that's yesno.h's job. + +2013-01-06 Paul Eggert + + maint: adjust to Gnulib changes + * lib/.gitignore: Add glthread, math.c, unistd.c, wctype-h.c. + * m4/.gitignore: Remove inline.m4. + +2013-01-04 Jim Meyering + + maint: update all copyright year number ranges + Run "make update-copyright". + + build: update gnulib submodule to latest + +2012-12-10 Paul Eggert + + diagnose unexpected EOF and zero lengths in packed data + Problem reported by Aki Helin. + * NEWS: Mention Aki's reports. + * tests/unpack-invalid: New file, + with test data suggested by Aki. + * tests/Makefile.am (TESTS): Add it. + * unpack.c (read_byte): New function. + (look_bits, read_tree): Use it. + (read_tree): Check against zero bit length Huffman code. + + gzip: diagnose invalid code in packed data + * unpack.c (unpack): When encountering a code out of range, report + it and fail rather than charging ahead with randomish output. + Problem reported by Aki Helin. + +2012-11-16 Jim Meyering + + maint: avoid new syntax-check failures + * cfg.mk (_gl_TS_unmarked_extern_vars): Append nice_match, to avoid + false-positive syntax-check failure on i686. + * gzip.c (SIGPIPE): Remove definition. Now always provided via gnulib. + * lib/.gitignore: xsize.c, added by gnulib-tool. + +2012-11-16 Paul Eggert + + gzip: fix debugging/porting typo + * unlzw.c (unlzw) [DEBUG]: Don't assume 'long' can be printed with %d. + + maint: merge build improvements from coreutils + * configure.ac: Invoke gl_ASSERT_NO_GNULIB_POSIXCHECK. + (--enable-gcc-warnings): Change help message. + (gl_GCC_VERSION_IFELSE): New macro. + Do not omit -Wunused-macros for main code. + Adjust other -W options as per coreutils. + * lib/Makefile.am (AM_CFLAGS): Use GNULIB_WARN_CFLAGS, not WARN_CFLAGS. + * unlzw.c (REGISTERS, REG1, REG2, ..., REG16): Remove. + All uses removed. These provoked -Wunused-macros warnings. + This sort of fiddling with registers hasn't been needed for years. + + build: update gnulib submodule to latest + + maint: port to platforms lacking SIGPIPE + * gzip.c (SIGPIPE): Define to 0 if not already defined. + + doc: bring up to date and fix troff typos + * doc/gzip.texi (Overview): Update RFC URLs. + * gzip.1: Likewise. Don't say "SEE ALSO" to programs that almost + nobody has installed anymore. + * gzip.1, zmore.1: Fix some troff typos. + * zdiff.1: Clarify what happens with input files. Don't talk + about temporary file names, as they're rarely used these days. + +2012-10-24 Paul Eggert + + tests: exercise the grep -e portability fix + Remove workaround for Solaris, since the bug should be fixed now. + Suggested by Petr Sumbera in + . + * tests/zgrep-context, tests/zgrep-f: All uses removed. + * tests/init.cfg (require_POSIX_grep_): Remove. + +2012-10-23 Eric Blake + + build: default to --enable-gcc-warnings in a git tree + Anyone building from cloned sources can be assumed to have a new + enough environment, such that enabling gcc warnings by default will + be useful. Tarballs still default to no warnings, and the default + can still be overridden with --disable-gcc-warnings. + * configure.ac (gl_gcc_warnings): Set default based on environment. + +2012-10-20 Paul Eggert + + zgrep: do not assume standard 'grep' has -e + On Solaris 11, /usr/bin/grep -e does not work. + Problem reported by Petr Sumbera in + . + * Makefile.am (.in): Substitute @GREP@. + * configure.ac (AC_PROG_GREP): Invoke. + * zgrep.in (grep): Use @GREP@. + +2012-08-14 Paul Eggert + + zgrep: do not assume GNU expr + * zgrep.in: Do not assume '\+' has the GNU behavior in the BRE + given to 'expr', as POSIX does not guarantee that. Come to think + of it, use a shell pattern rather than 'expr', as this is more + efficient. + +2012-08-08 Jim Meyering + + tests: exercise the just-fixed part of zgrep + * tests/zgrep-context: New file. + * tests/Makefile.am (TESTS): Add it. + +2012-08-08 Jim Meyering + + zgrep: handle a multi-digit context option like -15 + * zgrep.in: Do not malfunction when given an option like -15. + Before, it could end up treating the pattern as a file name: + + $ echo x | gzip | zgrep -15 x + gzip: x.gz: No such file or directory + + * NEWS (Bug fixes): Mention it. + Reported by Dan Bloch via Thomas Bushnell in + https://bugs.launchpad.net/bugs/1032831 + +2012-08-07 Jim Meyering + + build: update gnulib, bootstrap and init.sh + + maint: fix misspellings in old ChangeLog and NEWS + * ChangeLog-2007: s/Supress/Suppress/ + * NEWS: Likewise. + * cfg.mk (old_NEWS_hash): Update to match typo fix. + +2012-06-19 Paul Eggert + + zmore: rewrite to fix bugs and assume POSIX + Problem reported for Solaris 9 by Daniel in + . + Rather than figure out what exactly went wrong in Solaris 9 + it was easier to rip out all the buggy compatibility and stty cruft. + * zmore.in: Don't use stty or trap; simply pipe the output to 'more' + and let it deal with signals and terminal control. + Use printf, not 'echo', to avoid problems with backslashes. + Don't assume ANS is not 's' in the environment. + Use a 'more'-style header instead of rolling our own style. + Paginate the header, too; the old behavior lost the header. + * NEWS, zmore.1: Document this. + 2012-06-17 Jim Meyering + maint: add .mailmap + * .mailmap: New file. Unify two spellings of Paul's name, + to make git log output slightly cleaner. + + 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.5 * NEWS: Record release date. @@ -58,7 +1190,7 @@ maint: update all copyright year number ranges Run "make update-copyright". -2011-12-22 Paul Eggert +2011-12-21 Paul Eggert zless: decompress stdin too, if less 429 or later * zless.in: Use LESSOPEN |- feature of less 429 or later. @@ -94,14 +1226,12 @@ build: update gnulib submodule to latest -2011-11-03 Paul Eggert +2011-11-02 Paul Eggert * tests/zgrep-signal: Don't assume exit status 141 on PIPE signal. Problem reported by Eric Blake in . -2011-11-02 Paul Eggert - * tests/zgrep-signal: Use perl instead of a nonportable shell trap. Problem reported by Eric Blake in . @@ -424,7 +1554,7 @@ * zip.c (zip): Simplify conditional, which was incorrect at any rate for VMS. -2010-08-16 Paul Eggert +2010-08-15 Paul Eggert algorithm.doc: mention Internet RFC 1952 and modernize a bit * algorithm.doc: Update to mention header-CRC and Internet RFC 1952. @@ -436,7 +1566,7 @@ Inspired by a suggestion of Greg Roelofs in http://lists.gnu.org/archive/html/bug-gzip/2010-08/msg00004.html -2010-08-04 Paul Eggert +2010-08-03 Paul Eggert maint: update bootstrap * bootstrap, bootstrap.conf, tests/init.sh: Merge from gnulib. @@ -451,11 +1581,11 @@ * gzip.c (get_method): don't assume size_t can be printed with %u -2010-07-03 Paul Eggert +2010-07-02 Paul Eggert Mention that gzip -d now handles FHCRC. -2010-07-03 Paul Eggert +2010-07-02 Paul Eggert Decode FHCRC flag properly, as per Internet RFC 1952. Problem reported by Greg Roelofs in: @@ -478,7 +1608,7 @@ Update Info-ZIP name and coordinates (thanks to Greg Roelofs). -2010-05-12 Paul Eggert +2010-05-11 Paul Eggert * doc/gzip.texi (Sample): Fix backslash quoting problem. Problem reported by Ole Tange in @@ -579,7 +1709,7 @@ maint: update bootstrap * bootstrap: Use latest copy from gnulib/build-aux. -2010-04-06 Jim Meyering +2010-04-05 Jim Meyering build: use gnulib's lib-ignore module * bootstrap.conf (gnulib_modules): Add lib-ignore, in case it helps. @@ -656,7 +1786,7 @@ * zcmp.in: Exit with status of 2 (not 1), when writing --help or --version output fails, to be more like cmp. -2010-02-04 Jim Meyering +2010-02-03 Jim Meyering tests: add more tests of gzip -cdf * tests/mixed: Test "gzip -cdf" for a range of small uncompressed files. @@ -667,14 +1797,14 @@ (TESTS): ...to here. * tests/mixed: Comment out the currently (always?) failing part. -2010-02-04 Mark Adler +2010-02-03 Mark Adler gzip -cdf now handles concatenation of gzip'd and uncompressed data * util.c (copy): Change semantics so as to honor a decremented inptr. * gzip.c (get_method): When needed (-cdf), decrement inptr rather than clearing it -- and output the first magic byte. -2010-02-04 Dmitry V. Levin +2010-02-03 Dmitry V. Levin zgrep: terminate gracefully when a pipeline is interrupted by a signal zgrep is not terminated gracefully when its grep/sed pipeline @@ -699,6 +1829,8 @@ * bootstrap: Remove "indent-tabs-mode: nil" directive. * .x-sc_prohibit_tab_based_indentation: New file. +2010-02-02 Jim Meyering + global: convert indentation-TABs to spaces Transformed via this shell code: t=$'\t' @@ -709,7 +1841,7 @@ | xargs perl -MText::Tabs -ni -le \ '$m=/^( *\t[ \t]*)(.*)/; print $m ? expand($1) . $2 : $_' -2010-02-03 Dmitry V. Levin +2010-02-02 Dmitry V. Levin wrapper scripts: write diagnostics to stderr, not to stdout * zforce.in: In case of usage error, output short error diagnostics to @@ -717,7 +1849,7 @@ * zmore.in: Likewise. * znew.in: Likewise. -2010-02-03 Jim Meyering +2010-02-02 Jim Meyering gzip -cdf mishandles some concatenated input streams: test it * tests/mixed: Exercise "gzip -cdf" bug. @@ -812,7 +1944,7 @@ but fortunately is not a bug, because the definition it would have overridden was always empty. -2010-01-11 Jim Meyering +2010-01-10 Jim Meyering gzip -d would fail with a CRC error... ...for some inputs, and some memcpy implementations. It is possible