debian/gzip
6 years agoversion 1.9 v1.9
Jim Meyering [Sun, 7 Jan 2018 22:23:23 +0000 (14:23 -0800)]
version 1.9

* NEWS: Record release date.

6 years agogzexe: port to macOS mktemp
Paul Eggert [Sat, 6 Jan 2018 22:59:47 +0000 (14:59 -0800)]
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 "-").

6 years agomaint: update gnulib and copyright dates for 2018
Jim Meyering [Thu, 4 Jan 2018 00:39:01 +0000 (16:39 -0800)]
maint: update gnulib and copyright dates for 2018

* gnulib: Update to latest.
* bootstrap: Update from gnulib.
* all files: Run "make update-copyright".

6 years agobuild: update gnulib to latest
Jim Meyering [Sun, 17 Dec 2017 00:41:56 +0000 (16:41 -0800)]
build: update gnulib to latest

6 years agomaint: zforce and zmore exit status cleanup
Paul Eggert [Sat, 25 Nov 2017 06:34:05 +0000 (22:34 -0800)]
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.

6 years agogzexe: ensure file always exists
Paul Eggert [Fri, 24 Nov 2017 06:23:03 +0000 (22:23 -0800)]
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.

6 years agobuild: update gnulib to latest
Jim Meyering [Thu, 23 Nov 2017 23:25:18 +0000 (15:25 -0800)]
build: update gnulib to latest

6 years agogzexe: work even without the ability to make a hard link
Jim Meyering [Wed, 15 Nov 2017 03:34:46 +0000 (19:34 -0800)]
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

6 years agobuild: make each generated script unwritable
Jim Meyering [Wed, 15 Nov 2017 16:49:01 +0000 (08:49 -0800)]
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.

6 years agozless, znew: exit 1 upon --help or --version write failure
Jim Meyering [Mon, 13 Nov 2017 15:20:05 +0000 (07:20 -0800)]
zless, znew: exit 1 upon --help or --version write failure

* zless.in: Exit 1 upon --help or --version write error.
* znew.in: Likewise.

6 years agomaint: script diagnostics status cleanup
Paul Eggert [Mon, 13 Nov 2017 07:02:02 +0000 (23:02 -0800)]
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.

6 years agotests: don’t be so strict about timestamps
Paul Eggert [Sun, 12 Nov 2017 08:20:04 +0000 (00:20 -0800)]
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.

6 years agobuild: update gnulib submodule to latest
Paul Eggert [Sat, 11 Nov 2017 07:21:17 +0000 (23:21 -0800)]
build: update gnulib submodule to latest

6 years agognulib: update to latest
Jim Meyering [Fri, 10 Nov 2017 04:44:14 +0000 (20:44 -0800)]
gnulib: update to latest

6 years agomaint: use noreturn, not ATTRIBUTE_NORETURN
Jim Meyering [Fri, 10 Nov 2017 04:13:47 +0000 (20:13 -0800)]
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".

6 years agotests: unpack-invalid: correct and clean up a test
Jim Meyering [Thu, 9 Nov 2017 15:39:58 +0000 (07:39 -0800)]
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.

6 years agogzip: diagnose out-of-range MTIME
Paul Eggert [Wed, 8 Nov 2017 05:01:13 +0000 (21:01 -0800)]
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.

6 years agomisc: diagnose year-2038 configuration problems
Paul Eggert [Tue, 7 Nov 2017 07:14:40 +0000 (23:14 -0800)]
misc: diagnose year-2038 configuration problems

* bootstrap.conf (gnulib_modules): Add year2038.
* m4/.gitignore: Add year2038.m4[

6 years agomaint: remove IMPORT_FROM_GETTEXT
Paul Eggert [Mon, 6 Nov 2017 04:07:16 +0000 (20:07 -0800)]
maint: remove IMPORT_FROM_GETTEXT

* bootstrap.conf (IMPORT_FROM_GETTEXT): Remove.
This is a relic from older Gnulib, and has no effect now.

6 years agotests/unpack-valid: port to printf that do not grok hex
Jim Meyering [Sun, 29 Oct 2017 18:46:07 +0000 (11:46 -0700)]
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

6 years agognulib: update to latest; also update tests/init.sh from gnulib
Jim Meyering [Wed, 25 Oct 2017 14:28:21 +0000 (07:28 -0700)]
gnulib: update to latest; also update tests/init.sh from gnulib

6 years agogzip: fix bug with any upper case custom ('-S'-specified) suffix
Jim Meyering [Sat, 28 Oct 2017 21:15:04 +0000 (14:15 -0700)]
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

6 years agogzip: fix bug in unpack EOB check
Paul Eggert [Mon, 16 Oct 2017 08:02:54 +0000 (01:02 -0700)]
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.

6 years agomaint: fix "make syntax-check": remove useless HAVE_UTIME_H definitions
Jim Meyering [Tue, 19 Sep 2017 20:34:27 +0000 (13:34 -0700)]
maint: fix "make syntax-check": remove useless HAVE_UTIME_H definitions

* tailor.h: Don't define HAVE_UTIME_H.

6 years agomaint: avoid "make syntax-check" failure due to old-NEWS modification
Jim Meyering [Tue, 19 Sep 2017 20:30:41 +0000 (13:30 -0700)]
maint: avoid "make syntax-check" failure due to old-NEWS modification

* cfg.mk (old_NEWS_hash): Update, to reflect recent NEWS correction.

6 years agogzexe: improve usage diagnostic
Paul Eggert [Tue, 19 Sep 2017 17:43:13 +0000 (10:43 -0700)]
gzexe: improve usage diagnostic

* gzexe.in (usage): Reword for clarity (Bug#28514).

6 years agomisc: update --version copyright
Paul Eggert [Tue, 19 Sep 2017 17:38:31 +0000 (10:38 -0700)]
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.

6 years agomaint: prefer HTTPS to HTTP, FTP in URLs
Paul Eggert [Tue, 19 Sep 2017 17:24:05 +0000 (10:24 -0700)]
maint: prefer HTTPS to HTTP, FTP in URLs

6 years agomaint: copy bootstrap from Gnulib
Paul Eggert [Tue, 19 Sep 2017 17:20:01 +0000 (10:20 -0700)]
maint: copy bootstrap from Gnulib

6 years agomaint: port to GCC 7.2
Paul Eggert [Tue, 19 Sep 2017 17:00:35 +0000 (10:00 -0700)]
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.

6 years agomaint: update .gitignore for recent Gnulib
Paul Eggert [Tue, 19 Sep 2017 16:51:50 +0000 (09:51 -0700)]
maint: update .gitignore for recent Gnulib

6 years agobuild: update gnulib submodule to latest
Paul Eggert [Tue, 19 Sep 2017 16:40:23 +0000 (09:40 -0700)]
build: update gnulib submodule to latest

6 years agomaint: also distribute a zip-compressed tarball
Jim Meyering [Mon, 13 Mar 2017 05:42:06 +0000 (22:42 -0700)]
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.

7 years agogzip: port zdiff, zless to Busybox
Paul Eggert [Mon, 13 Mar 2017 23:35:55 +0000 (16:35 -0700)]
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.

7 years agotests: avoid failure when running with no tty
Jim Meyering [Tue, 7 Feb 2017 00:36:18 +0000 (16:36 -0800)]
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

7 years agognulib: update to latest; and tests/init.sh and bootstrap
Jim Meyering [Mon, 6 Feb 2017 18:03:04 +0000 (10:03 -0800)]
gnulib: update to latest; and tests/init.sh and bootstrap

7 years agomaint: change "time stamp" to "timestamp" globally
Jim Meyering [Mon, 6 Feb 2017 18:13:39 +0000 (10:13 -0800)]
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.

7 years agomaint: tweak a distcheck rule
Jim Meyering [Sun, 1 Jan 2017 11:37:15 +0000 (03:37 -0800)]
maint: tweak a distcheck rule

* dist-check.mk (my-distcheck): Don't use --disable-nls.
That option is now unrecognized.

7 years agomaint: update gnulib and copyright dates for 2017
Jim Meyering [Sun, 1 Jan 2017 11:23:03 +0000 (03:23 -0800)]
maint: update gnulib and copyright dates for 2017

* gnulib: Update to latest.
* all files: Run "make update-copyright".

7 years agomaint: use "returns_" rather than explicit comparison with "$?"
Jim Meyering [Sun, 30 Oct 2016 19:16:42 +0000 (12:16 -0700)]
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/.

7 years agogzip: minor time stamp cleanups
Paul Eggert [Sat, 5 Nov 2016 03:15:42 +0000 (20:15 -0700)]
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.

7 years agogzip: --no-time cleanup
Paul Eggert [Sat, 5 Nov 2016 03:15:42 +0000 (20:15 -0700)]
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.

7 years agogzip --no-name: avoid spurious warning
Paul Eggert [Sat, 5 Nov 2016 03:15:42 +0000 (20:15 -0700)]
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.

7 years agomaint: update .gitignore files to ignore more generated files
Jim Meyering [Tue, 25 Oct 2016 00:22:49 +0000 (17:22 -0700)]
maint: update .gitignore files to ignore more generated files

7 years agomaint: avoid unwarranted "make syntax-check" failure
Jim Meyering [Sun, 2 Oct 2016 19:51:57 +0000 (12:51 -0700)]
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.

7 years agognulib: update to latest
Jim Meyering [Sun, 2 Oct 2016 19:49:03 +0000 (12:49 -0700)]
gnulib: update to latest

7 years ago* doc/gzip.texi: Fix off-by-one timestamp.
Paul Eggert [Wed, 7 Sep 2016 21:56:05 +0000 (14:56 -0700)]
* doc/gzip.texi: Fix off-by-one timestamp.

7 years agogzip: fix some Y2038 etc. bugs
Paul Eggert [Tue, 6 Sep 2016 21:51:47 +0000 (14:51 -0700)]
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.

7 years agomaint: fix gzip-specific syntax-check rule
Jim Meyering [Tue, 30 Aug 2016 03:28:48 +0000 (20:28 -0700)]
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.

7 years agogzip: fix port to Atari by not defining ASMV
Paul Eggert [Mon, 13 Jun 2016 06:49:51 +0000 (23:49 -0700)]
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.

7 years agogzip: drop mentions of Amiga, VMS
Paul Eggert [Wed, 11 May 2016 23:23:51 +0000 (16:23 -0700)]
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.

7 years agomaint: arrange for better URLs in generated announcement message
Jim Meyering [Fri, 29 Apr 2016 13:39:26 +0000 (14:39 +0100)]
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.

8 years agomaint: post-release administrivia
Jim Meyering [Tue, 26 Apr 2016 20:55:51 +0000 (13:55 -0700)]
maint: post-release administrivia

* NEWS: Add header line for next release.
* .prev-version: Record previous version.
* cfg.mk (old_NEWS_hash): Auto-update.

8 years agoversion 1.8 v1.8
Jim Meyering [Tue, 26 Apr 2016 20:45:00 +0000 (13:45 -0700)]
version 1.8

* NEWS: Record release date.

8 years agognulib: update to latest
Jim Meyering [Tue, 26 Apr 2016 20:28:23 +0000 (13:28 -0700)]
gnulib: update to latest

8 years agogzip: simplify by closing ourselves
Paul Eggert [Wed, 20 Apr 2016 05:05:57 +0000 (22:05 -0700)]
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.

8 years agogzip: fix bug with -l output to pipes
Paul Eggert [Wed, 20 Apr 2016 00:43:09 +0000 (17:43 -0700)]
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.

8 years agoPort to Oracle Solaris Studio 12.4
Paul Eggert [Mon, 28 Mar 2016 23:26:45 +0000 (16:26 -0700)]
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.

8 years agomaint: post-release administrivia
Jim Meyering [Mon, 28 Mar 2016 04:03:50 +0000 (21:03 -0700)]
maint: post-release administrivia

* NEWS: Add header line for next release.
* .prev-version: Record previous version.
* cfg.mk (old_NEWS_hash): Auto-update.

8 years agoversion 1.7 v1.7
Jim Meyering [Mon, 28 Mar 2016 04:02:29 +0000 (21:02 -0700)]
version 1.7

* NEWS: Record release date.

8 years agoPort to NetBSD 7.0
Paul Eggert [Fri, 25 Mar 2016 19:57:05 +0000 (12:57 -0700)]
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.

8 years ago* tests/init.sh: Sync from Gnulib.
Paul Eggert [Fri, 25 Mar 2016 19:54:36 +0000 (12:54 -0700)]
* tests/init.sh: Sync from Gnulib.

8 years agoPort to Alpine Linux which uses Busybox
Paul Eggert [Fri, 25 Mar 2016 19:53:50 +0000 (12:53 -0700)]
Port to Alpine Linux which uses Busybox

* Makefile.am (check-local): Use plain diff rather than

8 years agogzip: also honor GZIP=--rsyncable
Jim Meyering [Thu, 24 Mar 2016 16:06:18 +0000 (09:06 -0700)]
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.

8 years agoFix typo in previous patch
Paul Eggert [Mon, 21 Mar 2016 22:46:12 +0000 (15:46 -0700)]
Fix typo in previous patch

8 years agoPort to Solaris 11 /bin/sh
Paul Eggert [Mon, 21 Mar 2016 22:41:55 +0000 (15:41 -0700)]
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.

8 years agozgrep: with -f SPECIAL, read SPECIAL just once
Paul Eggert [Fri, 18 Mar 2016 22:20:53 +0000 (15:20 -0700)]
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.

8 years agogzip: port to AIX 7.1 + xlc V12.1
Paul Eggert [Tue, 15 Mar 2016 22:45:42 +0000 (15:45 -0700)]
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.

8 years agognulib: update to latest
Jim Meyering [Tue, 15 Mar 2016 18:01:39 +0000 (11:01 -0700)]
gnulib: update to latest

8 years agomaint: don't ignore gitlog-to-changelog failure
Jim Meyering [Tue, 15 Mar 2016 17:40:08 +0000 (10:40 -0700)]
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.

8 years agogzip: pacify clang
Paul Eggert [Mon, 7 Mar 2016 00:47:22 +0000 (16:47 -0800)]
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

8 years agotests: port to systems for which ":" is not the PATH separator
Jim Meyering [Sun, 6 Mar 2016 20:27:28 +0000 (12:27 -0800)]
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.

8 years agodoc: minor --rsyncable doc fixes
Paul Eggert [Sun, 6 Mar 2016 19:29:34 +0000 (11:29 -0800)]
doc: minor --rsyncable doc fixes

* doc/gzip.texi (Sample): Mention --rsyncable.
* gzip.c (help): Sort and do not capitalize the new --rsyncable
help string.

8 years agogzip: minor zgrep cleanup
Paul Eggert [Sun, 6 Mar 2016 19:16:34 +0000 (11:16 -0800)]
gzip: minor zgrep cleanup

* zgrep.in: Simplify previous change.

8 years agogzip: port zgrep to Solaris 11.2
Paul Eggert [Sun, 6 Mar 2016 08:17:41 +0000 (00:17 -0800)]
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.

8 years agogzip: remove --__bindir
Paul Eggert [Sun, 6 Mar 2016 01:18:59 +0000 (17:18 -0800)]
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.

8 years agotests: fix "make check" failure on AIX 7.1
Jim Meyering [Sat, 5 Mar 2016 01:24:53 +0000 (17:24 -0800)]
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

8 years agogzip: support the --rsyncable option
Rusty Russell [Sat, 5 Sep 2015 19:08:28 +0000 (12:08 -0700)]
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

8 years agomaint: dist-check.mk: remove .deps dirs before comparing
Jim Meyering [Mon, 29 Feb 2016 03:48:38 +0000 (19:48 -0800)]
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.

8 years agomisc: update --version copyright
Paul Eggert [Sun, 28 Feb 2016 08:01:50 +0000 (00:01 -0800)]
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.

8 years agogzip: new option --synchronous
Paul Eggert [Sun, 28 Feb 2016 07:58:54 +0000 (23:58 -0800)]
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.

8 years agogzip: use constants, not fileno
Paul Eggert [Sat, 27 Feb 2016 22:33:17 +0000 (14:33 -0800)]
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.

8 years agogzip: fdatasync output dir before unlinking
Paul Eggert [Sat, 27 Feb 2016 22:12:46 +0000 (14:12 -0800)]
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.

8 years agofsync output file before closing
Paul Eggert [Tue, 23 Feb 2016 07:21:49 +0000 (23:21 -0800)]
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.

8 years agodoc: correct a diagnostic in man page to match actual
Jason Leschnik [Thu, 21 Jan 2016 04:19:06 +0000 (04:19 +0000)]
doc: correct a diagnostic in man page to match actual

* gzip.1: s/no change/unchanged/
This addresses http://debbugs.gnu.org/22413

8 years agomaint: update copyright year, bootstrap, init.sh
Jim Meyering [Fri, 1 Jan 2016 23:04:08 +0000 (15:04 -0800)]
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.

8 years agomaint: avoid three warnings from the very latest gcc-built-from-git
Jim Meyering [Mon, 2 Nov 2015 05:58:42 +0000 (21:58 -0800)]
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.

8 years agomaint: adjust copyright notices in *.in files to be consistent
Jim Meyering [Mon, 24 Aug 2015 17:08:16 +0000 (10:08 -0700)]
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.

8 years agobuild: avoid -Wshift-negative-value warning
Jim Meyering [Mon, 24 Aug 2015 16:10:51 +0000 (09:10 -0700)]
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.

8 years agomaint: remove dead code
Jim Meyering [Wed, 29 Jul 2015 05:31:30 +0000 (22:31 -0700)]
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.

9 years agogzip: make the GZIP env var obsolescent
Paul Eggert [Mon, 16 Mar 2015 21:25:17 +0000 (14:25 -0700)]
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.

9 years agomaint: adjust to recent gnulib
Paul Eggert [Sat, 14 Mar 2015 01:13:09 +0000 (18:13 -0700)]
maint: adjust to recent gnulib

* doc/.gitignore: Add gendocs_template_min.
* lib/.gitignore: Add assure.h.

9 years agomaint: ensure that --version's copyright date is current
Jim Meyering [Mon, 10 Jun 2013 01:35:47 +0000 (18:35 -0700)]
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.

9 years agognulib: update to latest
Jim Meyering [Sun, 8 Feb 2015 18:50:07 +0000 (10:50 -0800)]
gnulib: update to latest

9 years agomaint: update copyright year ranges to include 2015; update gnulib
Jim Meyering [Fri, 2 Jan 2015 05:42:13 +0000 (21:42 -0800)]
maint: update copyright year ranges to include 2015; update gnulib

9 years agomaint: move new NEWS entry into block for upcoming release
Jim Meyering [Mon, 10 Nov 2014 19:22:33 +0000 (11:22 -0800)]
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.

9 years agogzip: adjust -v output when -k is also specified
Paul Eggert [Mon, 10 Nov 2014 19:02:38 +0000 (11:02 -0800)]
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.

9 years agomaint: enable more syntax checks
Jim Meyering [Tue, 19 Aug 2014 15:59:38 +0000 (08:59 -0700)]
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.

9 years agomaint: avoid false positive match in check for double semicolon
Jim Meyering [Mon, 10 Nov 2014 15:46:47 +0000 (07:46 -0800)]
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.

9 years agognulib+bootstrap: update to latest
Jim Meyering [Mon, 10 Nov 2014 15:16:29 +0000 (07:16 -0800)]
gnulib+bootstrap: update to latest

* gnulib: Update the submodule.
* bootstrap: Update from gnulib.