[ SEA-GHOST MINI SHELL]
2012-06-17 Jim Meyering <meyering@redhat.com>
version 1.5
* NEWS: Record release date.
build: update gnulib for fixed maint.mk
build: update gnulib submodule; bootstrap and init.sh, too
* cfg.mk: Exempt crufty tailor.h from its use of "#define off_t...".
* .gitignore, m4/.gitignore: Update semi-automatically (via bootstrap).
2012-04-24 Paul Eggert <eggert@cs.ucla.edu>
doc: document -rf change
* NEWS: Document the ZFS fix.
gzip: remove CLOSEDIR
* gzip.c (CLOSEDIR): Remove; no longer used.
gzip: port gzip -rf to ZFS
Problem reported privately by Rich Burridge.
* bootstrap.conf: Add savedir.
* gzip.c: Include <savedir.h>.
(_D_EXACT_NAMELEN): Remove.
(treat_dir): Use savedir rather than reading directory entries one
at a time, to avoid revisiting an already-compressed file when using
ZFS and the -rf flags are specified.
* lib/.gitignore, m4/.gitignore: Ignore savedir-related files.
2012-03-18 Paul Eggert <eggert@cs.ucla.edu>
gzip: fix nondeterministic compression results
Reported by Jakub Wilk in <http://bugs.debian.org/647522>.
* deflate.c (fill_window): Don't let garbage pollute the dictionary.
2012-01-11 Jim Meyering <meyering@redhat.com>
tests: make all test scripts executable; work with automake-1.12
* tests/Makefile.am (TESTS_ENVIRONMENT): Adapt to work with upcoming
automake-1.12.
* tests/mixed: Make executable.
* tests/zgrep-f: Likewise.
* tests/zgrep-signal: Likewise.
* tests/znew-k: Likewise.
build: accommodate newer bootstrap from gnulib
* bootstrap.conf (gnulib_tool_option_extras): Add both --symlink
and --makefile-name=gnulib.mk.
* bootstrap: Update from gnulib.
* tests/init.sh: Update from gnulib.
* lib/Makefile.am: Initialize all of the following so that
generated code in gnulib.mk may use += to append to those variables:
AM_CFLAGS, BUILT_SOURCES, CLEANFILES, EXTRA_DIST, MOSTLYCLEANDIRS,
MOSTLYCLEANFILES, SUFFIXES, noinst_LTLIBRARIES.
2012-01-01 Jim Meyering <meyering@redhat.com>
maint: update all copyright year number ranges
Run "make update-copyright".
2011-12-22 Paul Eggert <eggert@cs.ucla.edu>
zless: decompress stdin too, if less 429 or later
* zless.in: Use LESSOPEN |- feature of less 429 or later.
Problem reported by Jeroen Roovers via Mike Frysinger in
<http://lists.gnu.org/archive/html/bug-gzip/2011-12/msg00006.html>.
2011-11-29 Jim Meyering <meyering@redhat.com>
build: update gnulib submodule to latest
build: accommodate gnulib's new warnings with --enable-gcc-warnings
* configure.ac (WERROR_CFLAGS): Disable two new warnings:
-Wno-format-nonliteral, -Wno-unsuffixed-float-constants.
* gzip.h (bi_reverse): Declare with _GL_ATTRIBUTE_CONST.
(gzip_base_name): Declare with _GL_ATTRIBUTE_PURE.
2011-11-29 Jim Meyering <meyering@redhat.com>
tests: use "compare exp out", not "compare out exp"
Likewise, when an empty file is expected, use "compare /dev/null out",
not "compare out /dev/null". I.e., specify the expected/desired contents
via the first file name. Prompted by a suggestion from Bruno Haible
in http://thread.gmane.org/gmane.comp.gnu.grep.bugs/4020/focus=29154
Run these commands:
git grep -l -E 'compare [^ ]+ exp' \
|xargs perl -pi -e 's/\b(compare) (\S+) (exp\S*)/$1 $3 $2/'
git grep -l -E 'compare [^ ]+ /dev/null' \
|xargs perl -pi -e 's,\b(compare) (\S+) (/dev/null),$1 $3 $2,'
2011-11-05 Jim Meyering <meyering@redhat.com>
build: update gnulib submodule to latest
2011-11-03 Paul Eggert <eggert@cs.ucla.edu>
* tests/zgrep-signal: Don't assume exit status 141 on PIPE signal.
Problem reported by Eric Blake in
<http://lists.gnu.org/archive/html/bug-gzip/2011-11/msg00007.html>.
2011-11-02 Paul Eggert <eggert@cs.ucla.edu>
* tests/zgrep-signal: Use perl instead of a nonportable shell trap.
Problem reported by Eric Blake in
<http://lists.gnu.org/archive/html/bug-gzip/2011-11/msg00005.html>.
* tests/zgrep-signal: Test for Fedora 15 signal bug.
Also, don't assume that SIGPIPE is SIG_DFL on entry.
2011-11-02 Jim Meyering <meyering@redhat.com>
build: update gnulib submodule to latest
tests: mixed: correct size-enumeration logic
* tests/mixed (sizes): Fix misplaced "&& break" that made us test
only with a size of 0, rather than all sizes in 0..64.
maint: avoid "make syntax-check" failure
* gzip.c (treat_stdin): Indent with spaces, not TABs.
2011-11-02 Paul Eggert <eggert@cs.ucla.edu>
* gzip.c (treat_stdin): If quiet, be quiet with plain gzip -q.
Problem reported by Michaël Guitton in
<http://lists.gnu.org/archive/html/bug-gzip/2011-11/msg00000.html>.
2011-08-10 Jim Meyering <meyering@redhat.com>
maint: remove amiga, atari, msdos, nt, os2, vms sub-directories,
and all files therein. This was proposed months prior, and no
one objected.
* amiga/Makefile.gcc: Remove file.
* amiga/Makefile.sasc: Likewise.
* amiga/match.a: Likewise.
* amiga/tailor.c: Likewise.
* amiga/utime.h: Likewise.
* atari/Makefile.st: Likewise.
* msdos/Makefile.bor: Likewise.
* msdos/Makefile.djg: Likewise.
* msdos/Makefile.msc: Likewise.
* msdos/doturboc.bat: Likewise.
* msdos/gzip.prj: Likewise.
* msdos/match.asm: Likewise.
* msdos/tailor.c: Likewise.
* nt/Makefile.nt: Likewise.
* os2/Makefile.os2: Likewise.
* os2/gzip.def: Likewise.
* os2/gzip16.def: Likewise.
* vms/Makefile.gcc: Likewise.
* vms/Makefile.mms: Likewise.
* vms/Makefile.vms: Likewise.
* vms/Readme.vms: Likewise.
* vms/gzip.hlp: Likewise.
* vms/makegzip.com: Likewise.
* vms/vms.c: Likewise.
* Makefile.am (EXTRA_DIST): Remove those file names.
build: use largefile module and update to latest gnulib
* configure.ac: Remove AC_SYS_LARGEFILE, subsumed by ...
* bootstrap.conf (gnulib_modules): ...this. Use largefile module.
* gnulib: Update to latest.
2011-07-12 Jim Meyering <meyering@redhat.com>
maint: update init.sh and bootstrap from gnulib
* bootstrap: Update from gnulib.
* tests/init.sh: Update from gnulib.
maint: use gnulib's realloc-gnu and malloc-gnu modules
* bootstrap.conf (gnulib_modules): Use realloc-gnu and malloc-gnu,
rather than the now-deprecated realloc and malloc modules.
build: update gnulib submodule to latest
2011-06-21 Paul Eggert <eggert@cs.ucla.edu>
* deflate.c: Export nice_match to assembler.
(static_unless_ASMV): New macro.
(nice_match): Use it.
2011-06-08 Jim Meyering <meyering@redhat.com>
build: fix "make syntax-check"
* cfg.mk (_gl_TS_unmarked_extern_vars): Add good_match.
build: avoid link failure: this time on i686 linux
* deflate.c (good_match): Must not be static, since it may
be used from lib/match.c.
2011-05-14 Jim Meyering <meyering@redhat.com>
build: avoid link failure on at least i386-FreeBSD7.2
* deflate.c (match_start, prev_length, max_chain_length): Do not
declare these as static. On some types of system/arch, they are
used via match_.s.
* cfg.mk (_gl_TS_unmarked_extern_vars): Mark those three variables
as known-extern: match_start, prev_length, max_chain_length.
2011-05-13 Jim Meyering <meyering@redhat.com>
avoid new build failure on a system without <crypt.h>
* bits.c: Don't include "crypt.h", now that it's deleted.
maint: use gnulib's new readme-release module
* bootstrap.conf (gnulib_modules): Add readme-release.
(bootstrap_epilogue): Add the recommended perl one-liner.
* README-release: Remove file; it is now generated from gnulib.
* .gitignore: Add it.
2011-05-09 Jim Meyering <meyering@redhat.com>
build: update gnulib submodule to latest
maint: prepare for gnulib's new tight-scope syntax-check rule
* cfg.mk (_gl_TS_dir): Define.
(_gl_TS_unmarked_extern_vars): Define.
maint: declare many variables to be static
* deflate.c: Likewise.
* gzip.c: Likewise.
* gzip.h: Likewise.
* inflate.c: Likewise.
* trees.c: Likewise.
* unzip.c: Likewise.
* util.c: Likewise.
maint: remove crypt.[ch] stubs
* Makefile.am (gzip_SOURCES): Remove crypt.c
(EXTRA_DIST): Remove crypt.h
* crypt.c, crypt.h: Remove files.
* unpack.c: Don't #include "crypt.h"
* zip.c: Likewise
* util.c: Likewise.
* unzip.c: Likewise.
maint: limit scope of several functions
* deflate.c (longest_match): Move extern declaration into #if-ASMV block.
[!ASMV]: Define as static.
* inflate.c: Remove unnecessary prototypes.
ANSI-declify functions and declare them to be static.
maint: remove all uses of OF((...)) prototype-hiding macro
* bits.c: Remove all uses of OF.
* deflate.c: Likewise.
* gzip.c: Likewise.
* inflate.c: Likewise.
* lzw.h: Likewise.
* trees.c: Likewise.
* unlzh.c: Likewise.
* unpack.c: Likewise.
* util.c: Likewise.
* gzip.h: Likewise.
(OF): Remove its definition, too.
maint: prepare for tight-scope rule: use noinst_HEADERS
* Makefile.am (EXTRA_DIST): Move lzw.h and gzip.h from here to ...
(noinst_HEADERS): ...here.
For convenience, since the tight-scope rule uses $(noinst_HEADERS).
2011-04-14 Jim Meyering <meyering@redhat.com>
maint: update bootstrap and init.sh from gnulib
* bootstrap: Likewise.
* tests/init.sh: Update from gnulib.
maint: note that we'll remove amiga, atari, msdos, nt, os2, vms soon
If someone can show that any of these are being used, let us know.
* TODO: Note the plan to remove those directories this year.
build: update gnulib submodule to latest
maint: fix typos in vms manual: s/it\nit/\nit/
* vms/gzip.hlp: Remove doubled "it".
2011-04-10 Jim Meyering <meyering@redhat.com>
maint: fix typos in comment: s/to to/to/
* deflate.c: Remove doubled 'to's.
2011-03-20 Jim Meyering <meyering@redhat.com>
maint: stop using .x-sc_* files to list syntax-check exemptions
Instead, use the new mechanism with which you merely use a
variable (derived from the rule name) defined in cfg.mk to an ERE
matching the exempted file names.
* gnulib: Update to latest, to get maint.mk that implements this.
* .x-sc_file_system: Remove file.
* .x-sc_prohibit_tab_based_indentation: Likewise.
* .x-sc_require_config_h: Likewise.
* .x-sc_require_config_h_first: Likewise.
* cfg.mk: Define variables to exempt the same files.
2011-03-18 Jim Meyering <meyering@redhat.com>
doc: correct README-release
* README-release: Remove mention of -announce mailing list.
Unlike coreutils, gzip does not have its own.
doc: update release procedure
* README-release: Resync from coreutils' file by the same name.
2011-01-03 Jim Meyering <meyering@redhat.com>
maint: update copyright year ranges to include 2011
Run "make update-copyright", so "make syntax-check" works in 2011.
build: update gnulib submodule to latest
maint: avoid failure of new test for bindtextdomain
* cfg.mk (local-checks-to-skip): Add sc_bindtextdomain.
2010-12-02 Jim Meyering <meyering@redhat.com>
maint: avoid "make syntax-check" failure due to old-NEWS modification
* cfg.mk (old_NEWS_hash): Update, to reflect recent NEWS correction.
2010-12-01 Paul Eggert <eggert@cs.ucla.edu>
* NEWS: The "gzip -f foo.gz" change occurred in 1.3.13, not 1.3.12
2010-11-10 Paul Eggert <eggert@cs.ucla.edu>
zgrep: don't assume traditional behavior with signal numbers
* zgrep.in: Don't assume the exit status is the signal number plus
128, as POSIX doesn't require this. No need to kill self; exiting
with large status is enough. Propagate all exit statuses greater
than 1, not merely those in the range 129..143, as there's no need
to treat that range specially (and it's not portable anyway).
2010-11-09 Paul Eggert <eggert@cs.ucla.edu>
zgrep: fix shell portability bug with -f; fix mishandling of "-e -"
* tests/zgrep-f: Check for "zgrep -e -" bug, too.
* zgrep.in: Don't assume that if the shell redirects fd 6, then
this redirection is visible to the subsidiary grep. POSIX doesn't
guarantee this visibility except for file descriptors 0, 1, and 2,
and ksh does not support it. Problem reported by Thomas Schulz in
<http://lists.gnu.org/archive/html/bug-gzip/2010-11/msg00000.html>.
Also, fix a related bug: "-e -" was mishandled. These two bugs
were introduced by commit 5b54db4546b84ec97ff57a62f8ddb98faacf77f2
dated 2009-10-09.
(escape): Change the convention: do not assume that a stray X
is present at the end of the last line. All uses changed.
There was no longer any need for this convention, and fixing this
made it a bit easier to use 'sed' in a later part of the fix.
2010-11-08 Paul Eggert <eggert@cs.ucla.edu>
maint: fix copyright dates that were munged by a maintenance script
* gunzip.in, gzexe.in, zcat.in, zcmp.in, zdiff.in, zforce.in:
* zgrep.in, zless.in, zmore.in, znew.in:
A script went awry when updating copyright dates in gzip's shell
scripts. It should update comments to look like "# Copyright (C)
2007, 2010 Free Software Foundation, Inc." (with a set of years)
and version messages to look like "Copyright (C) 2010 Free
Software Foundation, Inc." (with just the most-recent year).
Instead, it sometimes ignored one, sometimes the other, and
typically put ranges into version messages. Fix all this stuff by
hand, using dates that I divined from the change logs (so they're
a bit more accurate than script-generated dates). We need to fix
the script before it runs in 2011.
2010-10-23 Jim Meyering <meyering@redhat.com>
maint: anchor patterns in .gitignore files
* doc/.gitignore: Anchor patterns.
* lib/.gitignore: Likewise.
* m4/.gitignore: Likewise.
maint: update bootstrap and init.sh from gnulib
* bootstrap: Update.
* tests/init.sh: Update.
2010-10-23 Rob Vermaas <rob.vermaas@gmail.com>
maint: update to latest gnulib; use fdutimens, not gl_futimens
* gzip.c (copy_stat): Use fdutimens, not gl_futimens.
* gnulib: Update to latest.
2010-10-23 Jim Meyering <meyering@redhat.com>
maint: accommodate stricter syntax-check
Avoid #if, #define and #undef of always-defined symbols.
* gzip.c (ELOOP, SIGPIPE): Remove unneeded cpp directives.
* tailor.h (HAVE_DIRENT_H, HAVE_FCNTL_H, HAVE_UNISTD_H, MSDOS):
(O_BINARY): Likewise.
maint: make our use of gnulib's init.sh conform
* tests/help-version: Make use of init.sh conform.
* tests/helin-segv: Likewise.
* tests/help-version: Likewise.
* tests/hufts: Likewise.
* tests/memcpy-abuse: Likewise.
* tests/mixed: Likewise.
* tests/null-suffix-clobber: Likewise.
* tests/stdin: Likewise.
* tests/trailing-nul: Likewise.
* tests/zdiff: Likewise.
* tests/zgrep-f: Likewise.
* tests/zgrep-signal: Likewise.
* tests/znew-k: Likewise.
2010-10-10 Jim Meyering <meyering@redhat.com>
maint: describe policy on copyright year number ranges
* README: Mention coreutils' long-standing policy on use of M-N
ranges in copyright year lists. Requested by Richard Stallman.
2010-09-15 Paul Eggert <eggert@cs.ucla.edu>
zgrep: fix parsing of -Eh options
* zgrep.in: Update list of single-letter options to match what's
in GNU grep. Add -h as an alias for --no-filename. Bug reported
by Vladimir Sidorenko in
<http://lists.gnu.org/archive/html/bug-gzip/2010-09/msg00007.html>.
2010-08-17 Paul Eggert <eggert@cs.ucla.edu>
gzip: fix NO_SIZE_CHECK for VMS
* gzip.c (do_list): Use if, not #if.
* tailor.h (NO_SIZE_CHECK) [defined(VAXC) || defined(VMS)]: Define.
* zip.c (zip): Simplify conditional, which was incorrect at any rate
for VMS.
2010-08-16 Paul Eggert <eggert@cs.ucla.edu>
algorithm.doc: mention Internet RFC 1952 and modernize a bit
* algorithm.doc: Update to mention header-CRC and Internet RFC 1952.
Also, remove the crypto stuff, which never worked.
Inspired by that same suggestion of Greg Roelofs.
gzip: Use 0x%04x instead of %x when printing 16-bit checksums
* gzip.c (get_method): Use 0x%04x, not %x, to print 16-bit checksums.
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 <eggert@cs.ucla.edu>
maint: update bootstrap
* bootstrap, bootstrap.conf, tests/init.sh: Merge from gnulib.
2010-07-19 Paul R. Eggert <eggert@cs.ucla.edu>
gzip: don't assume C99, and don't assume overlapping memcpy should work
* tailor.h (NOMEMCPY): Remove. memcpy is entitled to not work
on overlapping blocks.
* inflate.c (inflate_codes): Don't put decl after statement.
Omit NOMEMCPY.
* gzip.c (get_method): don't assume size_t can be printed with %u
2010-07-03 Paul Eggert <eggert@cs.ucla.edu>
Mention that gzip -d now handles FHCRC.
2010-07-03 Paul Eggert <eggert@cs.ucla.edu>
Decode FHCRC flag properly, as per Internet RFC 1952.
Problem reported by Greg Roelofs in:
http://lists.gnu.org/archive/html/bug-gzip/2010-06/msg00003.html
* gzip.c (discard_input_bytes): New function.
(get_method): Check header checksum, if given. We never generate it,
but other programs may.
* gzip.h (HEADER_CRC): Renamed from CONTINUATION. All uses changed.
* tailor.h [defined __50SERIES]: Remove PRIMOS stuff that was obsolete
anyway and would have made this patch harder to maintain.
(get_char, put_char): Remove.
* zip.c (zip): Use put_byte instead of the now-removed put_char.
2010-07-01 Paul Eggert <eggert@cs.ucla.edu>
Don't assume that sizeof (long) == 4 when computing statistics.
* gzip.c (get_method): Don't assume sizeof (long) == 4.
* zip.c (zip): Likewise.
Update Info-ZIP name and coordinates (thanks to Greg Roelofs).
2010-05-12 Paul Eggert <eggert@cs.ucla.edu>
* doc/gzip.texi (Sample): Fix backslash quoting problem.
Problem reported by Ole Tange in
<http://lists.gnu.org/archive/html/bug-gzip/2010-05/msg00000.html>.
2010-04-26 Jim Meyering <meyering@redhat.com>
build: update gnulib submodule to latest
maint: remove primos support
* Makefile.am (EXTRA_DIST): Remove all primos/ files.
* primos/build.cpl: Remove file.
* primos/ci.opts: Likewise.
* primos/include/errno.h: Likewise.
* primos/include/fcntl.h: Likewise.
* primos/include/stdlib.h: Likewise.
* primos/include/sysStat.h: Likewise.
* primos/include/sysTypes.h: Likewise.
* primos/primos.c: Likewise.
* primos/readme: Likewise.
2010-04-08 Jim Meyering <meyering@redhat.com>
build: include cfg.mk in the distribution tarball
* Makefile.am (EXTRA_DIST): Add cfg.mk.
2010-04-07 Eric Blake <eblake@redhat.com>
maint: ignore more built files
* .gitignore: Add version files.
2010-04-07 Jim Meyering <meyering@redhat.com>
tests: help-version: cross-check PATH in tests
* tests/help-version: Cross-check $VERSION and --version output.
* tests/Makefile.am (TESTS_ENVIRONMENT): Export VERSION=$(VERSION).
tests: improve help-version
* tests/help-version: Use fail_, rather than echo+Exit.
tests: pull help-version from grep
build: keep --version strictly up to date
Before this change, in development, gzip's --version output could lag
behind reality by a couple deltas or by a "-dirty" suffix. That would
lead to spurious failure of the new --version-$VERSION PATH cross-check.
* Makefile.am (version.c, version.h): New rules.
(BUILT_SOURCES): Set/append.
(noinst_LIBRARIES, noinst_libver_a_SOURCES): Define.
(gzip_LDADD): Add libver.a.
(DISTCLEANFILES): Define.
* gzip.c (license): Use Version, not VERSION.
2010-04-06 Jim Meyering <meyering@redhat.com>
tests: (portability) use st, not "status" as variable name
* tests/zgrep-signal: Do not use status as a variable name,
per autoconf's documentation that it is not portable to
some shells.
tests: s/framework_failure/framework_failure_/
tests: update init.sh from gnulib
* tests/init.sh: Update from gnulib.
tests: run most tests via tests/Makefile.am
* Makefile.am (SUBDIRS): List tests after ".".
Move most test-related things from here to ...
* tests/Makefile.am: ... here.
* configure.ac (AC_CONFIG_FILES): Add tests/Makefile.
* tests/helin-segv: Adjust.
* tests/help-version: Likewise.
* tests/hufts: Likewise.
* tests/memcpy-abuse: Likewise.
* tests/mixed: Likewise.
* tests/null-suffix-clobber: Likewise.
* tests/stdin: Likewise.
* tests/trailing-nul: Likewise.
* tests/zdiff: Likewise.
* tests/zgrep-f: Likewise.
* tests/zgrep-signal: Likewise.
* tests/znew-k: Likewise.
tests: skip tests that use grep's -f and -E options, if they don't work
* tests/init.cfg (require_grep_minus_f): New function.
* tests/zgrep-f: Use require_grep_minus_f. Use path_prepend_.
tests: arrange for skip and failure notices to go to stderr, not .log
* tests/init.cfg: New file. Make init.sh's stderr_fileno_ match
what the "exec 9>&2" we use in TESTS_ENVIRONMENT.
* Makefile.am (EXTRA_DIST): Add it.
2010-04-06 Eric Blake <eblake@redhat.com>
maint: ignore generated files
* .gitignore: Ignore recent gnulib additions.
maint: update bootstrap
* bootstrap: Use latest copy from gnulib/build-aux.
2010-04-06 Jim Meyering <meyering@redhat.com>
build: use gnulib's lib-ignore module
* bootstrap.conf (gnulib_modules): Add lib-ignore, in case it helps.
* Makefile.am (AM_LDFLAGS): Define it.
maint: let configure-invoked cpp emit diagnostics to config.log
* configure.ac: Do not discard CPP's stderr.
build: update gnulib submodule to latest, and adapt
* cfg.mk: Update to use new _sc_search_regexp interface. Run this:
perl -pi -e 's/\b_prohibit_regexp\b/_sc_search_regexp/;'
-e 's/\bmsg=/halt=/; s/\bre=/prohibit=/;' cfg.mk
and then adjust backslashes so they still line up.
* cfg.mk (local-checks-to-skip): Add new sc_texinfo_acronym, to skip it.
* msdos/tailor.c (fcalloc): Mark a diagnostic for translation, to
placate stricter syntax-check, even though no one uses this file.
use assembly code matcher when possible
* configure.ac (ASCPPPOST): Backslash-escape "#" in AC_SUBST'd
variable, to keep make from seeing it as a comment-introducer.
Based on a patch by Petr Pisar.
* lib/Makefile.am (match.$(OBJEXT)): Use AM_V_GEN and AM_V_at.
* lib/match.c: Don't include <config.h>.
It would impede configure-time assembler test.
* .x-sc_require_config_h: Exempt lib/match.c from syntax-check.
* .x-sc_require_config_h_first: Likewise.
2010-03-20 Jim Meyering <meyering@redhat.com>
do not use stat.st_mtime of a non-regular file
* gzip.c: Include "timespec.h".
(treat_stdin): Use st_mtime only from a regular file.
This matters at least on Cygwin 1.7.1-1, for which a stdin-pipe has
the mtime of /dev/null, rather than the gzip-documented-for-pipes
"current time". Reported by Denis Excoffier.
2010-02-22 Jim Meyering <meyering@redhat.com>
tests: exercise the fix for the decompression data-loss bug
* tests/null-suffix-clobber: New file.
* Makefile.am (TESTS): Add it.
gzip: fix a data-loss bug when decompressing with --suffix=''
* gzip.c (main): Disallow an empty --suffix=S also with -d.
Otherwise, "gzip -d -S '' F.gz" would ask if it's ok to remove the
existing file, "F.gz"; if you reply "yes", you'd lose all of that data.
Use of an empty suffix was already rejected in compression mode.
* gzip.1 (--suffix (-S)): Do not recommend to use "gunzip -S '' *".
Describe how the suffix is used when decompressing, too.
* NEWS (Bug fixes): mention the fix.
Reported by Ripduman Sohan.
tests: add ---presume-input-tty option, solely for testing
* gzip.c: Include <stdbool.h>.
(presume_input_tty): New global.
(main): Set it.
(treat_stdin, check_ofname): Use it.
2010-02-07 Jim Meyering <meyering@redhat.com>
doc: minor adjustment to README-release
* README-release: Tweak description, to sync from coreutils.
tests: add the help-version sanity tests from coreutils
* tests/help-version: New file, from coreutils.
* Makefile.am (TESTS): Add it.
tests: make distcheck invoke "make syntax-check" and other tests
* dist-check.mk: New file, from coreutils.
* cfg.mk: Include it.
* Makefile.am (distcheck-hook): New rule, to make us use it.
zcmp: consistently indicate failure with exit status of 2
* 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 <meyering@redhat.com>
tests: add more tests of gzip -cdf
* tests/mixed: Test "gzip -cdf" for a range of small uncompressed files.
tests: flip and adjust mixed test, now that the bug is fixed
* NEWS (Bug fixes): Mention the fix.
* Makefile.am (XFAIL_TESTS): Move tests/mixed from here...
(TESTS): ...to here.
* tests/mixed: Comment out the currently (always?) failing part.
2010-02-04 Mark Adler <madler@alumni.caltech.edu>
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 <ldv@altlinux.org>
zgrep: terminate gracefully when a pipeline is interrupted by a signal
zgrep is not terminated gracefully when its grep/sed pipeline
is terminated by a signal. For example, a command like
zgrep -F .TH /usr/share/man/man1/*.gz | head
continues working long after the "head" process completes.
Another example, a command like
zgrep unmatched-pattern /usr/share/man/man1/*.gz
cannot be interrupted by sending a SIGQUIT with Ctrl-\ key, it outputs
zgrep: line 221: test: : integer expression expected
and goes on.
* zgrep.in: Terminate gracefully when the grep/sed pipeline is
terminated by a signal.
* tests/zgrep-signal: New test.
* Makefile.am (TESTS): Add it.
2010-02-03 Jim Meyering <meyering@redhat.com>
maint: teach "make syntax-check" the space-only indentation rule
* cfg.mk (sc_prohibit_tab_based_indentation): New rule, from coreutils.
(sc_prohibit_emacs__indent_tabs_mode__setting): Likewise.
* bootstrap: Remove "indent-tabs-mode: nil" directive.
* .x-sc_prohibit_tab_based_indentation: New file.
global: convert indentation-TABs to spaces
Transformed via this shell code:
t=$'\t'
git ls-files \
| grep -vE '(^|/)((GNU)?[Mm]akefile|ChangeLog)|\.(am|mk)$' \
| grep -vE 'tests/pr/|help2man' \
| xargs grep -lE "^ *$t" \
| xargs perl -MText::Tabs -ni -le \
'$m=/^( *\t[ \t]*)(.*)/; print $m ? expand($1) . $2 : $_'
2010-02-03 Dmitry V. Levin <ldv@altlinux.org>
wrapper scripts: write diagnostics to stderr, not to stdout
* zforce.in: In case of usage error, output short error diagnostics to
stderr instead of printing help text to stdout.
* zmore.in: Likewise.
* znew.in: Likewise.
2010-02-03 Jim Meyering <meyering@redhat.com>
gzip -cdf mishandles some concatenated input streams: test it
* tests/mixed: Exercise "gzip -cdf" bug.
* Makefile.am (XFAIL_TESTS): Add it.
Mark Adler reported the bug.
tests: move the hufts-segv test to its own file
* tests/hufts: New test.
* Makefile.am (TESTS): Add tests/
(check-local): Remove the hufts-segv test from this rule.
tests: begin moving tests into their own files
* Makefile.am (TESTS): Add tests/stdin.
(check-local): Move the stdin check to its own file:
* tests/stdin: New script.
tests: remove unnecessary use of "path_prepend_ ."
It is unnecessary, since Makefile.am's TESTS_ENVIRONMENT setting
already adds the top build directory, and besides, is only
marginally useful when running stand-alone, since it presumes
that the script is being run from the top build directory.
* tests/helin-segv: Remove unnecessary use of path_prepend_.
* tests/memcpy-abuse: Likewise.
* tests/trailing-nul: Likewise.
* tests/zdiff: Likewise.
* tests/zgrep-f: Likewise.
tests: note that znew-k test depends on length of temp file name
* tests/znew-k: Tweak diagnostic, factor and add a surprising comment.
2010-02-01 Jim Meyering <meyering@redhat.com>
build: update gnulib submodule to latest
2010-02-01 Dmitry V. Levin <ldv@altlinux.org>
fix "znew -K" to work without use of compress utility
* znew.in: Change -K option to imply -t, do not use compress(1).
* znew.1: Document it.
* tests/znew-k: New test.
* Makefile.am (TESTS): Add it.
2010-01-20 Jim Meyering <meyering@redhat.com>
maint: update README-release procedure
* README-release: sync from coreutils.
post-release administrivia
* NEWS: Add header line for next release.
* .prev-version: Record previous version.
* cfg.mk (old_NEWS_hash): Auto-update.
version 1.4
* NEWS: Record release date.
tests: exercise the segfault fix
* tests/helin-segv: New test.
* Makefile.am (TESTS): Add it.
gzip -d: do not clobber stack for valid input on x86_64
* unlzw.c (unlzw): Avoid integer overflow.
Aki Helin reported the segfault along with an input to trigger the bug.
* NEWS (Bug fixes): Mention it.
maint: avoid a minor "make syntax-check" failure
* .x-sc_file_system: Exempt NEWS, since it includes a literal
from an old diagnostic.
maint: remove unused file: README-alpha
* README-alpha: Remove unused file.
build: update gnulib submodule to latest
2010-01-11 Yuxi Zhang <YZhang@qnx.com>
gzip -d: use memcpy more often
* inflate.c (inflate_codes): Use memcpy (rather than slower
memcopy-like code) in more cases.
2010-01-11 Jim Meyering <meyering@redhat.com>
build: do not override gnulib-provided AM_CFLAGS options
Avoid a warning from automake:
lib/Makefile.am:24: AM_CFLAGS multiply defined in condition TRUE ...
lib/gnulib.mk:30: ... `AM_CFLAGS' previously defined here
lib/Makefile.am:20: `lib/gnulib.mk' included from here
* lib/Makefile.am (AM_CFLAGS): Append $(WARN_CFLAGS) and
$(WERROR_CFLAGS), i.e., use "+=", not "=".
This was introduced via 2009-12-17 commit 0341fc22,
"build: with --enable-gcc-warnings, use -Werror",
but fortunately is not a bug, because the definition
it would have overridden was always empty.
2010-01-11 Jim Meyering <meyering@redhat.com>
gzip -d would fail with a CRC error...
...for some inputs, and some memcpy implementations. It is possible
that an offending input has to be compressed "from FAT filesystem
(MS-DOS, OS/2, NT)", since the sole reproducer no longer evokes a
CRC error when uncompressed and recompressed on a GNU/Linux system.
Also, using an unpatched reverse-memcpy-gzip on over 100,000 inputs
on a GNU/Linux system did not turn up another reproducer.
* inflate.c (inflate_codes): Don't call memcpy with overlapping regions.
Properly detect when source and destination overlap.
* tests/memcpy-abuse: New test, to trigger misbehavior.
* Makefile.am (TESTS): Add it.
* NEWS (Bug fixes): Mention it.
Reported by Alain Magloire in
http://thread.gmane.org/gmane.comp.gnu.gzip.bugs/307
2010-01-08 Jim Meyering <meyering@redhat.com>
tests: switch to gnulib's init.sh test infrastructure
* tests/test-lib.sh: Remove file.
* tests/init.sh: New file, from gnulib.
* tests/trailing-nul: Use the new file.
* tests/zdiff: Likewise.
* tests/zgrep-f: Likewise.
* Makefile.am (EXTRA_DIST): List tests/init.sh, not test-lib.sh.
build: update gnulib submodule to latest
2010-01-03 Jim Meyering <meyering@redhat.com>
maint: record update-copyright options for this package
* cfg.mk: Next time, just run "make update-copyright".
2010-01-01 Jim Meyering <meyering@redhat.com>
maint: update all FSF copyright year lists to include 2010
Use this command:
git ls-files |grep -vE '^(\..*|COPYING|gnulib)$' |xargs \
env UPDATE_COPYRIGHT_USE_INTERVALS=1 build-aux/update-copyright
2009-12-31 Jim Meyering <meyering@redhat.com>
maint: newer gnulib; don't hard-code my GPG key ID
* cfg.mk (gpg_key_ID): Remove definition, now that maint.mk automates it.
* gnulib: Update to lastest.
2009-12-30 Jim Meyering <meyering@redhat.com>
build: update gnulib submodule to latest
maint: remove lots of obsolete #if...HAVE_* checks
Remove many always-true cpp tests like #ifdef HAVE_UNISTD_H,
#ifdef HAVE_FCNTL_H and #ifdef SSIZE_MAX.
* gzip.c: As above.
* gzip.h: Likewise.
* inflate.c: Likewise.
* tailor.h: Likewise.
* unlzw.c: Likewise.
* util.c: Likewise.
* zip.c: Likewise.
build: add a syntax-check
* cfg.mk (sc_prohibit_obsolete_HAVE_HEADER_H): New rule.
build: with --enable-gcc-warnings, use -Werror
* Makefile.am (AM_CFLAGS): Enable $(WERROR_CFLAGS).
* lib/Makefile.am (AM_CFLAGS): Enable both $(WARN_CFLAGS) and
$(WERROR_CFLAGS).
build: quiet warnings from util.c
* configure.ac (warnings): Add -Wno-overflow and -Wno-type-limits.
build: avoid warning about possibly-no-return functions
* gzip.h (read_error, write_error): Mark these functions as "no-return".
build: avoid warning about ignored chown/fchown return value
* bootstrap.conf (gnulib_modules): Add ignore-value.
* gzip.c: Include "ignore-value.h".
(copy_stat): Explicitly ignore chown and fchown failure
build: update gnulib submodule to latest
2009-11-20 Jim Meyering <meyering@redhat.com>
build: unlzw.c: avoid warnings about unused macros
* configure.ac: Turn off -Wunused-macros.
build: avoid warnings about unused macros
* unzip.c (LOCTIM): Comment out unused macro.
* deflate.c (EQUAL): Remove definition. Use "0" at sole point of use.
build: util.c: avoid warnings about add_envopt
* util.c (add_envopt): The parameter "env" was used for two conflicting
purposes. One use required a const char* parameter, while the other
was used as an argument to free, which must not be "const".
Rename the parameter and use a new local variable for the second role.
build: avoid many const-related warnings
* gzip.c: Add "const" to many variables, to avoid compiler warnings.
* util.c (add_envopt): Make 3rd parameter const
(gzip_error): Make sole parameter const.
* gzip.h: Update prototypes.
build: avoid warnings from -Wstrict-prototypes
* gzip.c (main): Declare using a prototype.
(progerror): Likewise. And make parameter const.
build: use gnulib's fdopendir module
* bootstrap.conf (gnulib_modules): Add fdopendir.
* gzip.c (treat_dir): Don't depend on HAVE_FDOPENDIR.
Gnulib now guarantees its availability.
* configure.ac: Don't check for fdopendir here.
build: enable many warnings
* configure.ac: Add support for --enable-gcc-warnings.
* bootstrap.conf (gnulib_modules): Add manywarnings.
* Makefile.am (AM_CFLAGS): Add (WARN_CFLAGS) # $(WERROR_CFLAGS)
maint: tweak formatting of bootstrap.conf
* bootstrap.conf (gnulib_modules): Unindent list.
maint: cfg.mk: remove factored-out ftp host/dir definitions
* cfg.mk (gnu_ftp_host-alpha, gnu_ftp_host-beta gnu_ftp_host-stable):
(gnu_rel_host, url_dir_list): Remove definitions. The defaults,
now provided by maint.mk, are the same.
* gnulib: Update for latest, including those maint.mk additions.
build: "make stable" emitted an invalid gnupload command
* cfg.mk (gnu_ftp_host-stable): Rename from gnu_ftp_host-major.
* README-release: Change another s/major/stable/.
2009-10-30 Jim Meyering <meyering@redhat.com>
post-release administrivia
* NEWS: Add header line for next release.
* .prev-version: Record previous version.
* cfg.mk (old_NEWS_hash): Auto-update.
version 1.3.14
* NEWS: Record release date.
build: accommodate new syntax-check test
* amiga/tailor.c (_expand_args): Change each of three uses of
"exit(20)" to "exit(EXIT_FAILURE)".
* sample/add.c: Include <stdlib.h>.
(main): Use EXIT_FAILURE and EXIT_SUCCESS, not 1 and 0.
* sample/sub.c (main): Likewise.
* sample/zread.c (main): Likewise.
build: update gnulib submodule to latest
build: link with $(LIB_CLOCK_GETTIME)
* Makefile.am (gzip_LDADD): Add $(LIB_CLOCK_GETTIME), now that
utimens pulls in gettime.
(FILES_TO_CHECK): Remove $(gzip_LDADD), now that it may contain -lrt.
2009-10-28 Jim Meyering <meyering@redhat.com>
msdos: fix syntax in Makefile.djg
* msdos/Makefile.djg (gzip): Change each of two leading 8-space
sequences to a TAB. Reported by Allan Mui.
2009-10-20 Jim Meyering <meyering@redhat.com>
build: do not use AC_PREFIX_PROGRAM
* configure.ac: Do not use "AC_PREFIX_PROGRAM(gzip)".
It would induce behavior that is so surprising that it is probably
universally considered to be buggy, these days. Reported by Zube
in http://thread.gmane.org/gmane.comp.gnu.gzip.bugs/273
2009-10-10 Jim Meyering <meyering@redhat.com>
gzip: add tests for today's bug fix
* tests/trailing-nul: New file. Test for today's fix.
* Makefile.am (TESTS): Add new script.
* NEWS (Bug fixes): Mention it.
2009-10-10 Daniel Barkalow <barkalow@iabervon.org>
gzip: don't fail when there is exactly one trailing NUL byte
* gzip.c (get_method): Require the second byte of magic only if
the first byte was nonzero.
2009-10-09 Jim Meyering <meyering@redhat.com>
build: enable automake color- and parallel-test options
* configure.ac (AM_INIT_AUTOMAKE): Enable color-tests and parallel-tests.
zgrep: portability improvements; exercise "-f -"
* zgrep.in: Adjust loop not to use seq; it's not portable enough.
Fail if we don't find a free file descriptor.
(exists): New function; Use it in place of less portable "test -e".
Testing for existence of /dev/fd/$fd doesn't work on Solaris 10,
since all 256 always exist (as char devices), but testing for
/proc/$$/fd/$fd does work, so do that instead.
* Makefile.am (TESTS): Add tests/zgrep-f.
* tests/zgrep-f: New test; exercise this bug.
* NEWS (Bug fixes): Mention it.
2009-10-09 Carl Worth <cworth@cworth.org>
zgrep: handle "-f -" the same way that it works with grep
Before this change, echo needle|zgrep -f - haystack.gz would not work.
* zgrep.in: When the pattern comes from stdin, redirect it to a
different file descriptor, since we're about to use stdin.
2009-10-09 Jim Meyering <meyering@redhat.com>
zdiff would exit 2 (error) rather than 1 for differences
* zdiff.in: Save and restore cmp's exit status around a case
statement that would otherwise clobber its value.
* NEWS (Bug fixes): Mention it.
* tests/zdiff: New test; exercise both bugs.
* tests/test-lib.sh: New file. From coreutils.
* Makefile.am (EXTRA_DIST): Add tests/test-lib.sh.
(TESTS): Add tests/zdiff.
(TESTS_ENVIRONMENT): Define. From coreutils.
(EXTRA_DIST): Append all $(TESTS).
zdiff: fix malfunction when operating on two gzip'd inputs
zdiff would fail to print differences in two compressed inputs
* zdiff.in: Don't let cmp output mix with echo'd gzip exit
status values. Report and fix from Jörg-Volker Peetz via
<http://bugs.debian.org/434275>
* NEWS (Bug fixes): Mention it.
build: update gnulib submodule to latest
2009-10-07 Jim Meyering <meyering@redhat.com>
build: update gnulib submodule to latest
2009-10-06 Jim Meyering <meyering@redhat.com>
maint: clarify web-doc-update instructions
* README-release: sync a tiny change from coreutils.
2009-10-03 Jim Meyering <meyering@redhat.com>
build: update gnulib submodule to latest
doc: use gnu-web-doc-update module
* bootstrap.conf (gnulib_modules): Add it.
2009-10-02 Jim Meyering <meyering@redhat.com>
doc: describe release procedure
* README-release: New file.
2009-10-01 Jim Meyering <meyering@redhat.com>
maint: make cfg.mk slightly more generic
* cfg.mk (url_dir_list): Don't hard-code "coreutils". Use $(PACKAGE).
2009-09-30 Jim Meyering <meyering@redhat.com>
post-release administrivia
* NEWS: Add header line for next release.
* .prev-version: Record previous version.
* cfg.mk (old_NEWS_hash): Auto-update.
version 1.3.13
* NEWS: Record release date.
build: update gnulib submodule to latest
maint: update bootstrap script
* bootstrap (with_gettext): Update from coreutils.
maint: pull in two release-related modules from gnulib
* bootstrap.conf (gnulib_modules): Add announce-gen and gnupload.
build: use more gnulib modules for better POSIX compliance
* bootstrap.conf (gnulib_modules): Add modules exposed via
make CFLAGS=-DGNULIB_POSIXCHECK 2>&1 \
|perl -lne '/.* use gnulib module (\S+).*/ and print $1' \
|sort |uniq -c|sort -nr
Add these: calloc close fclose fprintf-posix lstat malloc
perror printf-posix realloc
2009-09-30 Karl Berry <karl@freefriends.org>
doc: update to FDL 1.3, minor clean-up
* NEWS, README, TODO: Update FDL s/1.2/1.3/.
2009-09-28 Karl Berry <karl@freefriends.org>
doc: update gzip.texi
* doc/gzip.texi: FDL 1.3+
Consistently (de)capitalize section names.
"User's" is not correct; seems best to simplify the title.
Throw in some "GNU"'s.
Make direntries be what we actually want.
Detabify.
2009-09-26 Jim Meyering <meyering@redhat.com>
maint: temporarily exempt failing syntax-check tests
* cfg.mk (local-checks-to-skip): Add the list of currently-failing
tests, to exempt them from "make syntax-check".
gzip: don't use an uninitialized file descriptor
gzip interprets an argument of "-" as indicating stdin, but when
"-" is not the first name on the command line, it doesn't work.
* gzip.c (treat_stdin): Initialize "ifd".
Patch and fine description by Lasse Collin in
http://www.mail-archive.com/bug-gzip@gnu.org/msg00213.html
* Makefile.am (check-local): Exercise the fix. Based on the above.
* NEWS (Bug fixes): Mention this.
maint: use a git submodule for gnulib
* .gitmodules: New file, to track gnulib.
* gnulib: New file, created by running this:
git submodule add git://git.sv.gnu.org/gnulib.git gnulib
maint: update existing copyright year lists to include 2009
* bootstrap.conf (gnulib_modules): Add update-copyright.
maint: include <config.h> first in many files
maint: avoid another "make syntax-check" failure
* lib/Makefile.am (match.$(OBJEXT)): Use $(ASCPPPOST), not @ASCPPPOST@.
maint: remove RCS $Id$ variables and comments
maint: change spelling in comments: s/filesystem/file system/
maint: don't use "the the"
* msdos/doturboc.bat: s/the the/the/.
maint: remove trailing blanks
maint: remove useless if-before-free tests
* gzip.c (do_exit): Remove useless if-before-free tests.
maint: remove useless casts to avoid "make syntax-check" failures
* gzip.c (do_exit): Remove anachronistic cast.
* inflate.c (huft_free): Likewise.
* util.c (add_envopt): Likewise.
* vms/vms.c (vms_expand_args): Likewise.
maint: new file: .prev-version
* .prev-version: New file, to record previous version number.
2009-09-06 Jim Meyering <meyering@redhat.com>
build: avoid spurious warnings from clang
* gzip.h (gzip_error): Declare with ATTRIBUTE_NORETURN.
maint: update build-from-scratch infrastructure
* bootstrap: Modernize.
* bootstrap.conf: Modernize.
* cfg.mk: New file.
2009-08-18 Jim Meyering <meyering@redhat.com>
inflate: avoid a leak on a error path
* inflate.c (inflate_dynamic): Don't leak
maint: ignore a few generated files
* lib/.gitignore: ignore more generated files.
tests: add a test for just-fixed bug
* tests/hufts-segv.gz: New file, from bug report.
* Makefile.am (EXTRA_DIST): Add tests/hufts-segv.gz.
(check-local): Exercise the bug.
tests: don't misinterpret a failing test as successful
* Makefile.am (check-local): Exit "1" upon failure, not 0.
2009-08-18 Thiemo Nagel <thiemo.nagel@ph.tum.de>
avoid creating an undersized buffer for the hufts table
A malformed input file can cause gzip to crash with a segmentation
violation or hang in an endless loop.
Reported in <http://bugs.debian.org/507263>.
* NEWS (Bug fixes): Mention it.
2009-08-18 Jim Meyering <meyering@redhat.com>
avoid silent data loss e.g., on NFS, due to unchecked close of stdout
* gzip.c: Include "closein.h".
(main): Use atexit (close_stdin);
* bootstrap.conf (gnulib_modules): Add closein.
Prompted by Mark Kidwell's report and patch in
http://bugs.debian.org/538187
* NEWS (Bug fixes): Mention it.
* */.gitignore: Update.
build: require automake-1.11 and produce xz-compressed tarballs, too
* configure.ac: Require automake-1.11. Use the dist-xz option.
build: avoid non-srcdir build failure
* Makefile.am (gzip.doc.gz): Use $(srcdir)/gzip.doc, not gzip.doc.
Don't redirect directly to $@. Use $(AM_V_GEN).
(gzip.doc, .in): Don't redirect directly to $@. Use $(AM_V_GEN).
* NEWS: Add template header for upcoming release.
build: enable git-version-gen, automake silent rules, generate ChangeLog
* configure.ac (AC_INIT): Use git-version-gen.
Use AM_SILENT_RULES([yes]).
(AM_INIT_AUTOMAKE): Drop gnits; conflicts with git-version-gen versions.
* bootstrap.conf (gnulib_modules): Use getopt-gnu
Ensure ChangeLog exists, for automake.
rather than obsolete "getopt" module.
Add gitlog-to-changelog.
Add git-version-gen.
Add gnu-make, gnumakefile and maintainer-makefile.
* Makefile.am (dist-hook, gen-ChangeLog): New rules, to generate
ChangeLog and insert it into the distribution tarball.
(EXTRA_DIST): Add ChangeLog-2007.
maint: retire the last VC'd ChangeLog file
* ChangeLog-2007: Rename from ChangeLog.
From now on, the ChangeLog file will be generated automatically
from commit logs.
maint: rename .cvsignore files to .gitignore
* .gitignore: Renamed from .cvsignore.
* doc/.gitignore: Likewise.
* lib/.gitignore: Likewise.
* m4/.gitignore: Likewise.
SEA-GHOST - SHELL CODING BY SEA-GHOST