I'm going to release gzip-1.10 this year. Any testing would be most appreciated. See the NEWS below.
gzip snapshot: https://meyering.net/gzip/gzip-ss.tar.xz 760 KB https://meyering.net/gzip/gzip-ss.tar.xz.sig https://meyering.net/gzip/gzip-1.9.15-17f5c.tar.xz Changes in gzip since v1.9: Jim Meyering (7): maint: post-release administrivia build: remove -Wformat-truncation=2 to avoid avoid false-positive maint: update gnulib to latest; also update bootstrap and init.sh build: make the autoconf-2.63 requirement explicit maint: update gnulib to latest; also update bootstrap and init.sh maint: improve a comment build: avoid build failure with --enable-gcc-warnings and latest gcc Paul Eggert (8): misc: update --version copyright gzip: port better to mingw gzip: make the output more reproducible gzip: port better to mingw again Fix some theoretical races in signal handling gzip: fix bug in signal-handling fix * gzip.c (remove_output_file): Fix typo. gzip: fix use of uninitialized memory ==================================================== NEWS: ** Changes in behavior Compressed gzip output no longer contains the current time as a timestamp when the input is not a regular file. Instead, the output contains a null (zero) timestamp. This makes gzip's behavior more reproducible when used as part of a pipeline. (As a reminder, even regular files will use null timestamps after the year 2106, due to a limitation in the gzip format.) ** Bug fixes A use of uninitialized memory on some malformed inputs has been fixed. [bug present since the beginning] A few theoretical race conditions in signal handers have been fixed. These bugs most likely do not happen on practical platforms. [bugs present since the beginning] Changes in gnulib since v1.9: * gnulib 7e7c5c7...95c96b6 (561): > autoupdate > Assume Autoconf >= 2.63. > memcmp: Mention the clang bug. > revert v0.1-2213-gae4b73e28 and part of v0.1-2281-g95cd86dd7 > version-etc: allow zero authors > lchown tests: Be more permissive regarding errno values. > duplocale: Avoid test failure on AIX 7. > localename: Fix test failure on AIX 7. > localename: Update comments regarding Cygwin. > c-stack: Fix for Linux/sparc. > localename: Avoid test failure on some glibc systems. > autoupdate > random: Fix build error on native Windows (regression from 2018-06-21). > autoupdate > obstack, libc-config: Support HP-UX cc in C99 mode. > localename: Fix test failure on OpenBSD >= 6.2. > duplocale tests: Re-enable the test on platforms without <monetary.h>. > localename: Update comments. > regex: fix indentation > openat-safer tests: Avoid test failure on NetBSD 8. Part 2. > openat-safer tests: Avoid test failure on NetBSD 8. > regex: work around a bug in glibc-2.27 and prior > localename: Fix use of uninitialized shell variable. > dfa tests: Avoid test failure on Alpine Linux. > dfa: avoid new warnings from gcc > mkdir-p: improve diagnostic for FUSE mounts > hash-map: Add tests. > linkedhash-map: Add tests. > array-map: Add tests. > xmap: New module. > hash-map: New module. > linkedhash-map: New module. > array-map: New module. > map: New module. > select tests: Avoid test failure on Cygwin. > localtime-buffer: Avoid endless recursion in localtime and gmtime. > localeconv tests: Avoid test failure on Cygwin. > omap: Don't dispose the old value when the function returns it. > array-omap, avltree-omap, rbtree-omap: Tweak style. > rbtree-omap: Add tests. > avltree-omap: Add tests. > array-omap: Add tests. > xomap: New module. > rbtree-omap: New module. > avltree-omap: New module. > array-omap: New module. > omap: New module. > hash-set, linkedhash-set: Reduce code duplication. > array-set: Optimize. > times: Fix tests. > array-set, linkedhash-set, hash-set: Fix tests. > Fix comments. > hash-set: Add tests. > linkedhash-set: Add tests. > array-set: Add tests. > xset: New module. > hash-set: New module. > linkedhash-set: New module. > array-set: New module. > set: New module. > bison: don't force the Yacc mode > autoupdate > autoupdate > autoupdate > gnupload: Document short options. > gnupload: Support option -h as alias of --help. > memrchr: port better to clang > docs: mention printf %m considerations > autoupdate > bitset: rename ebitset/expandable.* as tbitset/table.* > bitset: check the operations > bitset: properly use false/true instead of 0/1 for Booleans > bitset: rename BITSET_VARRAY as BITSET_VECTOR > strerror_r-posix: memmove, not memcpy > autoupdate > bitsetv: new module > bitset: add tests and doc > bitset: new module > localename: Fix gettext test failures on mingw. > no more sync of gettext source files > autoupdate > autoupdate > mktime: add libc-config dependency > autoupdate > longlong: fix comment typo > havelib: Remove the need to include asm-underscore.m4. > parse-datetime: simplify test for mktime failure > posixtm: simplify test for mktime failure > nstrftime: simplify test for mktime failure > gnulib-common.m4: port _Noreturn to C++ > gnu-make: Fix for NetBSD 8 'make'. > maintainer-makefile: fix syntax-check rule for "same.h" > dfa: Simplify a building state > dfa: reorder tokens before execution > dfa: a state has a set of current positions. > dfa: simplify dfa optimization > dfa: position set sorts increasing order > dfa: remove unneeded code > autoupdate > havelib: fix nested ‘configure’ chatter > backupfile: tweak for better code > autoupdate > backupfile: new dir_fd args > localename: Simplify support for per-thread locales on Solaris 11.4. > Mention changed minimum requirements for Automake and Autoconf. > std-gnu11: Support Autoconf versions < 2.64. > Assume Autoconf >= 2.63. > Assume Automake >= 1.11. > localename: Fix typo in comment. > Fix failure of 'gnulib-tool --create-testdir' with all modules. > locale: Ease integration with GNU libintl. > localename: Fine-tune support for per-thread locales on Solaris 11.4. > localename: Fine-tune support for per-thread locales on Solaris 11.4. > Small update from gettext. > autoupdate > mountlist: Remove support for Cray with UNICOS 9. > fsusage, mountlist, getloadavg, getgroups: Remove support for Ultrix. > getloadavg: Remove support for ConvexOS. > getloadavg: Remove support for Sony NEWS. > fsusage, mountlist, getloadavg: Remove support for Dynix/ptx. > fsusage: Remove support for AIX 3. > fsusage, stat-size, getloadavg: Remove support for AIX PS/2. > getloadavg: Remove support for HP-UX on m68k. > fsusage, mountlist: Remove support for DolphinOS (an SVR3 variant). > getloadavg: Remove support for Alliant FX/2800. > getloadavg: Remove support for tek4300. > getloadavg: Remove support for Ardent. > mountlist: Remove support for SVR2. > autoupdate > assure: Fix comment. > libc-config: merge from glibc > regex: depend on libc-config > autoupdate > localename: Add support for per-thread locales on Solaris 11.4. > timevar: use gethrxtime to get wall clock time > wcsnrtombs: Work around Solaris 11.4 bug. > mbsnrtowcs: Work around Solaris 11.4 bug. > doc: Update for Solaris 11.4. > floor, ceil, trunc, truncf, truncl: Defeat GCC optimizations. > bootstrap: fix wget command for po files. > timevar: improve the output format > timevar: expect that getrusage is available > mountlist: Improve support for Solaris in 64-bit mode. > mountlist: Add support for Minix. > Make better use of Autoconf. > mountlist: Modernize platform lists. > getprogname: Add support for 32-bit programs on HP-UX. > getprogname: Work around program name truncation when possible. > fts: cleanup after FTS_NOATIME removal > fts: remove FTS_NOATIME > csharpcomp*, csharpexec*: Remove support for pnet. > autoupdate > renameatu: prefer renameat2 to syscall > bootstrap, gnulib-tool: use https instead of insecure rsync > Add ChangeLog entry for last commit. > bootstrap, gnulib-tool: correct the translations wget command > doc: the gnulib snapshots are not maintained > timevar: add to lib_SOURCES > dirent: Update documentation. > strpbrk: Make it possible to namespace the defined symbol. > strcspn: Make it possible to namespace the defined symbol. > raise: Make it possible to namespace the defined symbol. > memcmp: Make it possible to namespace the defined symbol. > explicit_bzero: Make it possible to namespace the defined symbol. > mkdir-p: Depend on 'mkdir'. > tempname: Depend on 'mkdir'. > timevar: rely on gnulib modules for time portability. > sh-filename: New module. > fcntl: Make it possible to namespace the defined symbol, part 2. > spawn-pipe tests: Avoid test failure on native Windows. > fcntl: Make it possible to namespace the defined symbol. > vasnprintf tests: Avoid test failure on HP-UX/hppa and IRIX. > vasnprintf tests: Avoid test failure on Cygwin. > mkostemp, mkostemps: Update documentation. > mkostemp, mkostemps: Fix compilation error in C++ mode on Mac OS X. > hmac-*: refactor to remove repetitive code > hmac-sha512: fix hash for keys > blocksize (128 bytes) > vasnprintf: Avoid warnings from GCC's -Wsign-compare. > grantpt: Remove unnecessary dependency. > timevar: Small tweaks. > timevar: Include documentation in gnulib manual. > timevar: import from Bison. > javacomp-script, javacomp: Add preliminary support for Java 12..17. > javacomp-script, javacomp: Add support for Java 11. > vasnprintf: Fix heap memory overrun bug. > autoupdate > maint: mktime.c now shared with glibc > mktime: fix _LIBC typo > dfa: optimization for state merge > dfa: trivial comment fix: s/is/if/ > dfa: use more-informative function name > dfa: tweak allocation performance > dfa: prune states as we go > dfa: reorder enum for efficiency > dfa: optimize alternation in NFA > dfa: simplify initial state > file-has-acl: Fix test failure on Cygwin 2.9. > stat-time tests: Fix test failure on Cygwin. > doc: fix typo > doc: OS X 10.11 lacked ns time functions > gettime: nanotime never existed > doc: Update statement about target platforms. > posix_spawn tests: Fix link error on 64-bit Cygwin. > timespec: new function current_timespec > setlocale: Improve locale handling on macOS 10.12 or newer. > Update list of locale names with scripts on macOS. > gettext: Use newer macOS APIs when possible. > gettext: Use newer macOS APIs when possible. > localename: Revisit macOS specific code. > setlocale: Improve support for locales not supported by libc. > strstr, strcasestr: Add workaround against glibc-2.28 bug. > doc: Fix bottom of top-level page. > Add test case from a recent glibc bug. > Apply Eric Blake's improvements from 2011-02-25 to more tests. > Apply Jim Meyering's fix from 2015-01-11 to more tests. > xstrtol: actually copy the intprops.h line > xstrtol: fix missing-TYPE_SIGNED typo > timespec: fix resolution confusion > mktime: simplify in prep for glibc merge > intprops: minor clarification of code > Fix a comment. > posix_spawn_file_actions_addchdir: Add tests. > posix_spawn_file_actions_addchdir: New module. > Fix typo in comment in yesterday's commit. > stddef: Override max_align_t on NetBSD 8.0/x86. > fcntl: Fix F_DUPFD_CLOEXEC behaviour on Haiku. > count-trailing-zeros tests: Rely on limits-h module. > count-leading-zeros tests: Rely on limits-h module. > count-one-bits tests: Rely on limits-h module. > xstrtoll: Rely on limits-h module. > strtoll, strtoull: Rely on limits-h module. > intprops tests: Fix compilation error with pre-C99 compiler. > limits-h: Provide numerical limits macros. > fcntl: Don't access nonexistent optional argument. > doc: mention environ pitfall > gnulib-tool: Fix build order when $testsbase is a subdir of $sourcebase. > mktime: fix unlikely race+overflow bug > mktime, timegm: simplify glibc time64_t > mktime, timegm: simplify merge to glibc > autoupdate > autoupdate > intprops: avoid evaluation of some expressions > autoupdate > autoupdate > autoupdate > getcwd: Add cross-compilation guesses. > ; autoupdate > autoupdate > glob-h: Formalize side effects from other modules. > fnmatch-h: Formalize side effects from other modules. > limits-h: Formalize side effects from other modules. > getpass: Move declaration to <unistd.h>. > glob: Fix over-optimization due to attribute __nonnull__. > glob: Fix another compilation error when glob.h is not replaced. > fnmatch: Avoid conflicting macro definitions of 'fnmatch'. > Avoid -Wcast-function-type warnings from casts after GetProcAddress. > glob: Fix another compilation error when glob.h is not replaced. > glob: Fix compilation error when glob.h is not replaced. > scratch_buffer: Add tests. > scratch_buffer: Fix include file. > glob-h: Revert Paul Eggert's revert. > glob-h: always build glob.h > autoupdate > monetary: Simplify m4 code. > fnmatch-gnu: Revert part of last commit (unneeded). > fnmatch, fnmatch-gnu: Fix compilation error on Mac OS X. > autoupdate > setlocale: Trivial simplification. > Fix ChangeLog typo. > verify: port 'assume' to traditional tools > fnmatch: Fix compilation error in C++ namespace mode on Mac OS X. > autoupdate > autoupdate > glob-h: Add tests. > glob-h: New module. > Force generation of substitute .h file when C++ support is enabled. > fnmatch-h: Fix test compilation error on mingw (regression from today). > sys_resource: Relicense under LGPLv2+. > fnmatch-h: Add tests. > fnmatch-h: New module. > Enable more C++ tests. > getopt-posix, utime-h: Ensure the .h file gets regenerated when needed. > utime-h: Generate header file when module 'posixcheck' is in use. > monetary: Generate header file when module 'posixcheck' is in use. > iconv-h: Generate header file when module 'posixcheck' is in use. > Optimize the "checking whether ... is declared without a macro" checks. > iconv-h: Enable 'posixcheck' warnings. > Fix link error regarding 'rpl_environ' (regression from 2012-11-21). > New module 'posixcheck'. > autoupdate > dfa: fix memory leak > ieee754-h: new module > autoupdate > iswcntrl: Mention minor problem on macOS. > bootstrap, gnulib-tool: fix translations rsync > bootstrap, gnulib-tool: fix translations rsync > autoupdate > bootstrap: reinstate definition fo gnulib_mk. > doc: For module names, use texinfo markup @code{} or @samp{}. > doc: Avoid some overfull lines in the TeX output. > autoupdate > hard-locale: simplify by removing hard-locale.m4 > gnulib-tool: limit line length for git send-email > ffs: Ensure declaration on mingw. > autoupdate > autoupdate > regex-tests: add dependency > autoupdate > renameatu: fix ChangeLog typo > mkancesdirs: Add extern "C" to header > ; autoupdate > regex: now in sync with glibc > renameatu: rename from renameat2 > gnulib-tool: minor tweaks for --gnu-make > regex: work around conditional-dependencies glitch > autoupdate > autoupdate > wchar: fix bug when checking for ‘inline’ > getloadavg: don't redefine WINDOWS32 > bootstrap: s/--option val/--option=val/ > manywarnings: omit -Wswitch-default > regex: revert most trimming > regex: trim module dependencies > regex: glibc does not use intprops.h > gnulib-tool.py: import mktemp > regex: port to recently proposed glibc regex merge > build-aux/config.sub > threadlib: Fix LIBMULTITHREAD on platforms where --as-needed is enabled. > Continue to use spaces for indentation, not tabs. > manywarnings: Don't enable -Wjump-misses-init warnings by default. > acl-internal.h: remove _GL_ATTRIBUTE_CONST on void function > parse-datetime: accommodate gcc-4.8.5 > af_alg: Fail in continuable manner on Linux/powerpc64le. > af_alg: Fix state of stream after sendfile() succeeds. > canon-host: take GCC9's advice rather than ignoring warning > parse-datetime.y: avoid spurious GCC 9 warning > canon-host.c: avoid spurious GCC 9 warning > manywarnings: accommodate GCC 9.0-pre: remove -Wchkp and -Wabi > af_alg tests: Add another test. > maint: clarify comments about sticky EOF > af_alg: Comment and style improvements. > Fix order of most recent ChangeLog entries. > af_alg: disable kernel hash functions by default > af_alg: avoid hangs when reading from streams > af_alg: fix error handling when hash not returned > libc-config: merge from glibc > mbrtowc, wcwidth: Fix MT-safety bug (regression from 2018-06-23). > wchar-single: Fix test failure in wcwidth tests. > crypto: mention --without-linux-crypto in --with-openssl --help > wchar-single: a new module to enable optimizations in wchar replacements > libc-config: Fix conflict with FreeBSD include files. > random_r: do not crash if state is unaligned > random_r: omit unnecessary include > random, random_r: merge from glibc > README-release: also run any check-very-expensive tests > typo > pthread_rwlock_rdlock: Add comments regarding glibc behaviour. > crypto: use byteswap > gendocs.sh: fix support for legacy --texi2html > gettext po infrastructure: Update from current gettext git. > getloadavg: Return 0 on Windows without Cygwin. > getloadavg: Allow building on Windows without Cygwin > Port crypto/af_alg to GCC 4.8.4 > autoupdate > bootstrap: document source fetching in --help > bootstrap: allow non-submodule control of gnulib > autoupdate > autoupdate > crypto: omit stream ops Emacs doesn’t need > fts: avoid a memory leak edge case > wcwidth tests: Fix link error. > autoupdate > regex: Fix "error: possibly undefined macro: gl_GLIBC21". > localcharset: Optimize. > localcharset: Map the locale encodings found in newer OSes. > localcharset: Move mapping tables into the code. > localcharset: Add a manual test. > localcharset: Remove support for obsolete platforms. > gnupload: adjust comment > autoupdate > gnupload: Fix "gpg-agent is not available in this session" error. > crypto/af_alg: fix --help > autoupdate > nl_langinfo: Fix compilation error on Android. > truncate: Fix compilation error on Android. > pthread: Fix compilation error on Android. > posix_spawn: Fix compilation error on Android. > tsearch: Move from K&R C to ANSI C. > tsearch: Fix compilation error on Android. > imaxdiv: Fix compilation error on Android. > Support selective inclusion mechanism of recent mingw.org header files. > Avoid compilation error due to 'mmap' on Android. > Add cross-compilation guesses for Linux systems without glibc. > getpagesize: Fix compilation error on Android. > tcgetsid: Fix compilation error on Android. > getpass: Fix configure test for Android. > ffs: Fix compilation error on Android. > mkfifo: Fix compilation error on Android. > c-strtod: Fix configure test for Android. > random: Fix compilation error on Android. > grantpt: Fix compilation error on Android. > stdioext: Fix compilation errors with newer Android headers. > doc: Add info about Android versions 2.0 to 8.1. > autoupdate > fseeko: On mingw, don't use the hidden function _fseeki64. > glob: Choose 'dirent_type' in a way that works better on mingw. > execute, spawn-pipe: Avoid warning about redefining 'close'. > nanosleep: Avoid test failure on mingw when it has nanosleep. > autoupdate > lock, cond, thread, tls: Use a different symbol as libpthread witness. > cond tests: Fix compilation error on Solaris. > doc: Add partial info about Android 4.3. > doc: More tweaks for Android 9.0. > doc: Add info about Android 9.0. > pthread: document Android limits > af_alg: fix my typo in afalg_buffer > af_alg: recover better from crypto failures > af_alg: distiguish I/O errors better > af_alg: avoid gotos > af_alg: don’t leak file descriptors into children > af_alg: coalesce socket creation > af_alg: fix file descriptor leak > af_alg: Pacify --enable-gcc-warnings on GCC 8 > af_alg: Pacify --enable-gcc-warnings > autoupdate > af_alg: Add ability to use Linux kernel crypto API on data in memory. > af_alg: Avoid warnings. > crypto/{md5,sha1,sha256,sha512} tests: Add benchmarks. > af_alg: Fix a resource leak. > af_alg: Fix bug with streams that are not at position 0. > crypto/{md5,sha1,sha256,sha512} tests: Enhance test. > af_alg: Add configure option to enable/disable use of Linux crypto API. > Followup to 'af_alg: New module.'. > crypto/{md5,sha1,sha256,sha512}: simplify > af_alg: Improve comments. > af_alg: Improve comments. > af_alg: New module. > Fix order of most recent ChangeLog entries. > crypto tests: pacify GCC > af_alg: minor style improvements > af_alg: Fix bug on empty files. > sys-limits.h: new file for crypto and safe I/O > af_alg: Improve function signature. > crypto/{md5,sha1,sha256,sha512}: Fix compilation error (S_TYPEISTMO). > crypto/{md5,sha1,sha256,sha512}: Fix module description. > af_alg: Add documentation. > sha512: Add tests. > sha256: Add tests. > sha1 tests: Add test for sha1_stream. > md5 tests: Add test for md5_stream. > autoupdate > md5sum: use kernel crypto API > sha512sum: use kernel crypto API > sha256sum: use kernel crypto API > sha1sum: use AF_ALG when available > all: Replace more http URLs by https URLs. > maint: port more modules to GCC 8 > Simplify code. Drop support for Borland C++ on Windows. > autoupdate > localename: Fix test failures on mingw. > autoupdate > bootstrap: Avoid gnulib operations if not needed > manywarnings: port to GCC 8.0 > sys_socket: Make SO_REUSEPORT available across platforms. > autoupdate > localcharset: short-circuit the search for an alias on a Mac > autoupdate > fts: add comment > fts: fix bug in find across filesystems > Fix last ChangeLog entry. > unicase/u*-context: Fix link errors with libunistring <= 0.9.9. > execute: Update comment. > fts: treat CIFS like NFS > c-stack: Fix possible build failure on some platforms. > time_rz: fix workaround for Mac OS X 10.6 infloop > havelib: port to Solaris 10 /bin/sh > time_rz: work around Mac OS X 10.6 infloop > test-version-etc.sh: don't use diff directly: use init.sh's compare > javacomp-script, javacomp: Add support for Java 10. > javacomp-script, javacomp: Update comments. > javacomp-script, javacomp: Fix support for Java 7, 8, 9. > test-version-etc.sh: port to diff without -c > c-stack: port to recent GCC build > euidaccess: Port to native Windows. > javacomp: Add support for Java 7, 8, 9. > javacomp-script: Add support for Java 9. > Spelling fix > glob: Don't compile replacements on recent glibc systems. > glob: Fix link error on native Windows. > glob: Fix compilation error in C++ mode. > host-cpu-c-abi: Support for RISC-V CPU. > autoupdate > autoupdate > autoupdate > autoupdate > fflush: be more paranoid about libio.h change > autoupdate > autoupdate > autoupdate > maint: write-file-hooks -> before-save-hook > autoupdate > binary-io: pacify gcc -Wunused-parameter > fflush: adjust to glibc 2.28 libio.h removal > autoupdate > autoupdate > environ: fix link error on 32-bit Cygwin > autoupdate > mbrtowc tests: Fix regression on glibc. > autoupdate > striconveha, uniconv/*: Avoid test failures on musl libc. > localename: Add support for musl libc. > mbrtowc tests: Don't make assumptions about the charset the C locale. > ptsname_r: Don't expect that this function sets errno. > xmalloca: pacify gcc -Wbad-function-cast > nl_langinfo: pacify gcc -Wunused-function > same: pacify gcc -Wunused-variable > malloca: pacify gcc -Wbad-function-cast > autoupdate > utimecmp: new function utimecmpat > same: new function same_nameat > warnings: Add support for Objective C. > lock: Fix test-once1 crash on FreeBSD11. > lock: Add test of gl_once. > thread: Fix compilation error on IRIX. > nl_langinfo: Override the system's nl_langinfo() when needed. > signal-h, monetary, strings: Fix build failure in some cases. > maint.mk: exempt "/proc/filesystems" from "file system" syntax check > stdlib: Fix compilation error on OpenIndiana. > host-cpu-c-abi: Avoid use of 'grep -E' on OpenIndiana. > malloca: Add a compile-time verification. > malloca: Add an argument check. > localename: Add support for OpenIndiana. > malloca, xmalloca: Make multithread-safe. > environ: Fix link error on 64-bit Cygwin. > get-rusage-data: Add support for Minix 3. > vma-iter: Add support for Minix 3. > Fix malfunction of socket functions on HP-UX in 64-bit mode. > getsockname tests: More tests. > manywarnings: fix maintainer comment > autoupdate > langinfo: Fix last commit. > langinfo, nl_langinfo: Add support for alternative month names. > Merge strftime.c changes from glibc > Fix typo in comment. > doc: Mention another prerequisite for using Gnulib. > build: GuixSD doesn't have /bin/bash > Avoid test failures on Microsoft Windows Subsystem for Linux. > canonicalize-lgpl: fix typo > autoupdate > autoupdate > autoupdate > filenamecat: make base a suffix of result > autoupdate > autoupdate > autoupdate > autoupdate > maint: Add encoding marker for Emacs to non-ASCII sources. > update-copyright: Handle use of © > autoupdate > Fix -Wundef warning in user-included header lib/cdefs.h. > pthread_sigmask: Avoid compilation error on mingw.