--- /dev/null
+.deps
+Makefile
+*.o
+config.log
+config.status
+gunzip
+gzexe
+gzip
+zcat
+zcmp
+zdiff
+zegrep
+zfgrep
+zforce
+zgrep
+zless
+zmore
+znew
--- /dev/null
+/c++defs.h
--- /dev/null
+Note that using sudo during the build, such as with 'dpkg-buildpackage -rsudo'
+may fail because wine (which is needed to run mingw32) doesn't like being run
+as root when ~/.wine is owned by a normal user. The fix for this is to either
+build gzip with another root-gaining tool (fakeroot works fine), or to run the
+entire build as root (ick!). It may be possible to also solve this with some
+interesting set of wine options, but I'm not motivated to figure that out since
+fakeroot works.
+
+ -- Bdale Garbee <bdale@gag.com> Tue, 15 Apr 2008 08:16:17 -0600
+
--- /dev/null
+gzip (1.5-2) UNRELEASED; urgency=low
+
+ * merge diff from -1.1 NMU by Thorsten Glaser
+
+ -- Bdale Garbee <bdale@gag.com> Tue, 19 Jun 2012 14:04:08 -0600
+
+gzip (1.5-1.1) unstable; urgency=low
+
+ * Non-maintainer upload with permission of maintainer.
+ * Clean up the debian/rules file to fix FTBFS caused by
+ inclusion of build-indep on binary-arch target.
+
+ -- Thorsten Glaser <tg@mirbsd.de> Wed, 20 Jun 2012 16:10:12 +0200
+
+gzip (1.5-1) unstable; urgency=low
+
+ * new upstream version, with updated gnulib that closes: #669434
+ * patch to restore zgrep -h from Pär-Ola Nilsson, closes: #658734
+ * patch to fix pack reference in gzip man page from Stéphane Aulery,
+ closes: #308522
+ * patch to add --rsyncable doc to info page from Jörgen Grahn,
+ closes: #637626
+ * patch to improve zdiff doc from Stéphane Aulery, closes: #269612
+ * patches to fix RFC URLs from Stéphane Aulery, closes: #636182
+
+ -- Bdale Garbee <bdale@gag.com> Tue, 19 Jun 2012 14:04:08 -0600
+
+gzip (1.4-5) unstable; urgency=low
+
+ * patch from upstream to address determinism issue, closes: #647522
+
+ -- Bdale Garbee <bdale@gag.com> Mon, 19 Mar 2012 11:07:22 +0100
+
+gzip (1.4-4) unstable; urgency=low
+
+ * enable hardening build flags, closes: #664499
+
+ -- Bdale Garbee <bdale@gag.com> Sun, 18 Mar 2012 20:16:45 +0100
+
+gzip (1.4-3) unstable; urgency=low
+
+ * patch from upstream for sys_stat.in.h to fix mingw32 builds,
+ closes: #653960
+
+ -- Bdale Garbee <bdale@gag.com> Mon, 05 Mar 2012 22:13:33 -0700
+
+gzip (1.4-2) unstable; urgency=low
+
+ * patch to use DEB_HOST_ARCH in rules, closes: #644785
+ * fix missing stamp creating in rules file causing extra build cycle,
+ closes: #648555
+
+ -- Bdale Garbee <bdale@gag.com> Sat, 12 Nov 2011 17:24:17 -0700
+
+gzip (1.4-1) unstable; urgency=low
+
+ * new upstream version, closes: #627121, #633927
+ * add Vcs entries to control file
+ * patch zless LESSOPEN definition to allow handling of gunzip data on STDIN,
+ closes: #248302
+ * Build using mingw-w64 instead of mingw32, closes: #623428
+ * update to current policy, source package formats, etc
+
+ -- Bdale Garbee <bdale@gag.com> Wed, 20 Apr 2011 01:48:46 -0600
+
+gzip (1.3.12-9) unstable; urgency=high
+
+ * fix applied for CVE-2010-0001 which identified an integer underflow when
+ decompressing files that are compressed using the LZW algorithm. This
+ could lead to the execution of arbitrary code when trying to decompress
+ a crafted LZW compressed gzip archive.
+ * switch to using dh_lintian for override delivery
+
+ -- Bdale Garbee <bdale@gag.com> Thu, 21 Jan 2010 07:38:41 +1300
+
+gzip (1.3.12-8) unstable; urgency=low
+
+ * Add Carl Worth as an uploader.
+ * Fix "-f -" to work with zgrep, closes: #168606
+ * Avoid creating undersized hufts table, closes: #507263
+
+ -- Carl Worth <cworth@cworth.org> Fri, 27 Feb 2009 12:54:37 -0800
+
+gzip (1.3.12-7) unstable; urgency=low
+
+ * improve package descriptions, remove ancient package relationship spec
+ in control file, closes: #484547
+
+ -- Bdale Garbee <bdale@gag.com> Sun, 15 Feb 2009 10:54:48 -0700
+
+gzip (1.3.12-6) unstable; urgency=low
+
+ * strip the win32 gzip.exe binary during install, closes: #464455
+ * patch from Reuben Thomas for the zless.1 man page with pointers to
+ lessfile and lesspipe, which are a better solution than zless in most
+ cases... closes: #46787, #51162
+ * fix FTBFS when using gcc-4.3, closes: #476031
+ * remove the preinst since the --assert-support-predepends check should
+ no longer be necessary
+
+ -- Bdale Garbee <bdale@gag.com> Tue, 15 Apr 2008 14:03:26 -0600
+
+gzip (1.3.12-5) unstable; urgency=low
+
+ * patch for zgrep.in from Daniel Kobras, closes: #434429
+ * patch from upstream to fix compilation with mingw32, and patch from
+ Robert Millan to build a win32 executable if mingw32 is available, all
+ to fix a preseeding problem in the win32-loader for Debian Installer.
+ closes: #457867
+
+ -- Bdale Garbee <bdale@gag.com> Mon, 04 Feb 2008 21:46:42 -0700
+
+gzip (1.3.12-4) unstable; urgency=low
+
+ * incorporate diffs from NMUs, closes: #434275, #433845, #438675
+ * define UNALIGNED_OK when building for amd64, closes: #386356
+
+ -- Bdale Garbee <bdale@gag.com> Wed, 19 Dec 2007 17:48:37 -0700
+
+gzip (1.3.12-3.2) unstable; urgency=low
+
+ * Non-maintainer upload.
+ * Stop zdiff from dropping cmp's output. Patch thanks to Jorg-Volker Peetz
+ (Closes: Bug#434275)
+
+ -- Anthony Towns <aj@azure.humbug.org.au> Sun, 14 Oct 2007 23:50:29 +1000
+
+gzip (1.3.12-3.1) unstable; urgency=medium
+
+ * Non-maintainer upload.
+ * Rename futimens to gz_futimens, since glibc now defines an futimens
+ function with a different prototype. Closes: #433845.
+ * Urgency medium for the RC bug fix.
+
+ -- Daniel Schepler <schepler@debian.org> Sat, 18 Aug 2007 17:11:52 -0400
+
+gzip (1.3.12-3) unstable; urgency=low
+
+ * fix bindir so gunzip, et al, work again, closes: #429462
+
+ -- Bdale Garbee <bdale@gag.com> Fri, 22 Jun 2007 01:08:59 +0100
+
+gzip (1.3.12-2) unstable; urgency=low
+
+ * fix typo in gzip fprintf, closes: #426965
+ * revert my zgrep.in patch since upstream handles alternates differently now
+
+ -- Bdale Garbee <bdale@gag.com> Thu, 14 Jun 2007 00:17:37 -0400
+
+gzip (1.3.12-1) unstable; urgency=low
+
+ * new upstream version, closes: #177942, #225864, #362786, #366660, #367400,
+ #383358, #402042, #404099, #404114, #419895
+ * fix delivery of upstream ChangeLog, closes: #404062
+
+ -- Bdale Garbee <bdale@gag.com> Wed, 13 Jun 2007 18:55:42 -0400
+
+gzip (1.3.9-2) unstable; urgency=low
+
+ * change direntry ordering in gzip.texi to work around bug in install-info,
+ closes: #404048
+
+ -- Bdale Garbee <bdale@gag.com> Thu, 21 Dec 2006 09:16:16 -0700
+
+gzip (1.3.9-1) unstable; urgency=low
+
+ * new upstream version, closes: #366660, #403308
+ * clean up a few gratuitous differences from new upstream, leaving
+ only the rsyncable patch and tweaks like zmore always using more
+ * fix spelling error in documentation, closes: #395450
+ * upstream patch for regression uncompressing null input, closes: #403970
+
+ -- Bdale Garbee <bdale@gag.com> Wed, 20 Dec 2006 19:16:36 -0700
+
+gzip (1.3.5-15) unstable; urgency=high
+
+ * security update, covering the following alerts:
+ CVE-2006-4334 CVE-2006-4335 CVE-2006-4336 CVE-2006-4337 CVE-2006-4338
+
+ -- Bdale Garbee <bdale@gag.com> Tue, 19 Sep 2006 06:35:26 -0600
+
+gzip (1.3.5-14) unstable; urgency=medium
+
+ * update section to match override
+ * patch from Matthew Chapman to avoid deleting input file before we're
+ sure the output file has been written without errors, closes: #366660
+ * patch from Reuben Thomas to fix zgrep return code,
+ closes: #292896, #192891, #190442
+ * enable gzexe compressed files to work on systems where tempfile is not
+ available while retaining preference for tempfile, closes: #334540
+
+ -- Bdale Garbee <bdale@gag.com> Tue, 20 Jun 2006 15:02:27 -0600
+
+gzip (1.3.5-13) unstable; urgency=low
+
+ * patch from Reuben Thomas fixes problem passing zgrep filenames starting
+ with dashes, closes: #342501
+ * fix a spelling error in gzip man page, closes: #356011
+ * document the fact that zless doesn't work with stdin,
+ closes: #320226, #345036
+
+ -- Bdale Garbee <bdale@gag.com> Sat, 15 Apr 2006 01:31:54 -0600
+
+gzip (1.3.5-12) unstable; urgency=low
+
+ * merge patch from Matt Zimmerman for futex hang due to improper signal
+ handling, closes: #310053, #315612
+ * merge patch to add --rsyncable to the man page, closes: #289616, #295721
+ * don't return failing result code on harmless warning, closes: #169669
+
+ -- Bdale Garbee <bdale@gag.com> Mon, 11 Jul 2005 22:10:51 +0300
+
+gzip (1.3.5-11) unstable; urgency=low
+
+ * patch from Peter Samuelson for bashism in zgrep,
+ closes: #314342, #314211, #312380, #310329
+
+ -- Bdale Garbee <bdale@gag.com> Wed, 15 Jun 2005 14:39:11 -0600
+
+gzip (1.3.5-10) unstable; urgency=medium
+
+ * remove PAGER reference from zmore.1, closes: #263792
+ * patch to improve zgrep argument sanitizing (CAN-2005-0758),
+ closes: #308379
+ * patch isolated by Petter Reinholdtsen for CAN-2005-0988, closes: #303927
+ * patch for dir traversal bug (CAN-2005-1228), closes: #305255
+ * up the priority a click because of the security fixes
+ * patch to support cross building, closes: #283730
+
+ -- Bdale Garbee <bdale@gag.com> Fri, 20 May 2005 22:34:49 -0600
+
+gzip (1.3.5-9) unstable; urgency=low
+
+ * eliminate the autoconf and automake build dependencies, since they are
+ no longer needed, closes: #250766
+ * improve temp file usage in gzexe, closes: #257314, #259043
+ * have zmore use 'more' instead of honoring $PAGER, to avoid violating
+ the principle of least astonishment, closes: #234212
+ * fix zgrep choke on filenames including a pipe character, closes: #216211
+ * incorporate watch file, closes: #248722
+ * suggest less, since we provide zless, closes: #217925
+ * use signames instead of signumbers for trap calls, closes: #259284
+
+ -- Bdale Garbee <bdale@gag.com> Sat, 24 Jul 2004 01:23:03 -0600
+
+gzip (1.3.5-8) unstable; urgency=low
+
+ * run autoreconf -i to address problem reported with dir.old.gz being
+ included on rebuilds, closes: #249519
+ * change automake build dependency from automake1.7 to automaken
+ * add lintian overrides to squelch the hardlink warnings
+ * fix typo in inflate.c comments, closes: #201881
+
+ -- Bdale Garbee <bdale@gag.com> Sun, 23 May 2004 01:07:03 -0600
+
+gzip (1.3.5-7) unstable; urgency=low
+
+ * patch from David Mosberger to incorporate work done by Sverre Jarp on
+ an ia64 version of match.c content.
+
+ -- Bdale Garbee <bdale@gag.com> Thu, 10 Jul 2003 08:45:27 -0600
+
+gzip (1.3.5-6) unstable; urgency=medium
+
+ * patch for insecure temp file usage in znew, closes: #193375
+
+ -- Bdale Garbee <bdale@gag.com> Sat, 7 Jun 2003 09:05:11 -0600
+
+gzip (1.3.5-5) unstable; urgency=low
+
+ * apply patch from Anthony Towns that fixes seg faults on alpha during
+ build of Xfree86 at the expense of slightly decreasing the effectiveness
+ of the deflate implementation. closes: #184057, #187417
+
+ -- Bdale Garbee <bdale@gag.com> Wed, 16 Apr 2003 11:24:23 -0600
+
+gzip (1.3.5-4) unstable; urgency=low
+
+ * merge patch from Rusty Russell that adds --rsyncable option to gzip.
+ This modifies the output stream to allow rsync to transfer updated .gz
+ files much more effectively. The resulting .gz files should be compatible
+ with the existing gunzip. The plan is that if this works out well for
+ Debian, the functionality will be included in a future upstream gzip
+ release. Closes: #116183, #118118, #134741
+
+ -- Bdale Garbee <bdale@gag.com> Thu, 13 Feb 2003 23:50:23 -0700
+
+gzip (1.3.5-3) unstable; urgency=low
+
+ * upload a fresh version so m68k, et al, will rebuild, closes: #167790
+
+ -- Bdale Garbee <bdale@gag.com> Wed, 6 Nov 2002 16:13:42 -0700
+
+gzip (1.3.5-2) unstable; urgency=low
+
+ * fix gzexe.in again as per what I did for 1.3.2-3 that accidentally got
+ lost when I merged 1.3.5 from upstream... sigh. Closes: #167150
+ * hack on gzip.texi a little harder to squelch warning at install time from
+ Debian's install-info, closes: #164106
+
+ -- Bdale Garbee <bdale@gag.com> Wed, 30 Oct 2002 20:21:42 -0700
+
+gzip (1.3.5-1) unstable; urgency=low
+
+ * new upstream version
+ * fixes a bug in the incorrect-suffix diagnostic, which can lead to a
+ core dump, closes: #152579
+ * removes dangling output symlinks properly, closes: #144759
+ * zless no longer thinks it is zmore in usage message, closes: #121810
+ * zless replaced with a much simpler script, closes: #124097
+ * uses shell pattern matching instead of 'expr', closes: #123295
+ * man page suggests how to use gunzip on zip files, closes: #146019
+ * uses "trap -" to avoid bashism, closes: #140972, #157111
+ * accepts __i386 and __i386__ as synonyms for i386, closes: #152694
+ * fixes printing values greater than 10 * 2**32 bytes, closes: #141189
+ * includes fix for zforce needing -v, closes: #123294
+ * hack gzip.texi so that the Debian install-info doesn't choke on it (grrr),
+ and add texinfo as a build dependency
+ * eliminate things hard-coded in postinst and prerm now handled by debhelper
+
+ -- Bdale Garbee <bdale@gag.com> Wed, 9 Oct 2002 09:05:27 -0600
+
+gzip (1.3.2-3) unstable; urgency=low
+
+ * modify gzexe.in to hard-code /bin/gzip instead of trying to use BINDIR
+ which yields /usr/bin/gzip. Don't use PATH since we have no idea what it
+ might be when the gzexe'd executable gets run. Closes: #119641
+
+ -- Bdale Garbee <bdale@gag.com> Wed, 14 Nov 2001 23:00:59 -0700
+
+gzip (1.3.2-2) unstable; urgency=low
+
+ * fix silly mistake made when moving man pages from hard to soft links, so
+ man pages for zegrep, zfgrep, and uncompress work again, closes: #118325
+
+ -- Bdale Garbee <bdale@gag.com> Mon, 5 Nov 2001 00:53:40 -0700
+
+gzip (1.3.2-1) unstable; urgency=low
+
+ * new upstream release, incorporating my diffs to 1.3.1
+
+ -- Bdale Garbee <bdale@gag.com> Sun, 4 Nov 2001 09:47:40 -0700
+
+gzip (1.3.1-2) unstable; urgency=low
+
+ * add build dependencies on autoconf and automake
+ * fix infodir spec so we install in the build tree, not the system directory
+
+ -- Bdale Garbee <bdale@gag.com> Sat, 3 Nov 2001 02:18:06 -0700
+
+gzip (1.3.1-1) unstable; urgency=low
+
+ * new upstream version! From alpha.gnu.org, on the explicit advice of the
+ current upstream maintainers, who are working with Debian to prepare a new
+ stable release that addresses many of the open issues in our BTS.
+ .
+ large file support handled in configure, closes: #108612, #83061, #113000
+ it appears the subtle problem with concatenation is fixed, closes: #114591
+ various segfault problems appear fixed, closes: #46312
+ gzip -r issues fixed, closes: #53645, #106186
+ problem with --no-filename option fixed, closes: #59067
+ zgrep -r disallowed - "I did not use the patch as it was not a complete
+ . fix for the problem and I thought it would cause more problems than
+ . it would cure. Instead, I simply disallowed zgrep -r", closes: #81288
+ error message reworded, closes: #76238
+ compression factor output fixed, closes: #80362
+ zgrep -H fixed, closes: #84371
+ permission issue when forced to compress linked file fixed, closes: #88918
+ manpage hardlinks fixed, closes: #94733
+ gzip --help now goes to stdout, closes: #97020
+ zless no longer runs less if file doesn't exist, closes: #109097
+ problem with -best fixed, closes: #17650
+ zgrep now understands --, closes: #28475
+ file size output by gzip fixed for large files, closes: #40721
+ * fix location referenced for GPL on Debian systems, closes: #112095
+ * move install-info remove call from from postrm to prerm
+
+ -- Bdale Garbee <bdale@gag.com> Sat, 3 Nov 2001 01:01:02 -0700
+
+gzip (1.2.4-33) unstable; urgency=low
+
+ * update to current policy
+
+ -- Bdale Garbee <bdale@gag.com> Thu, 2 Dec 1999 01:10:58 -0700
+
+gzip (1.2.4-32) unstable; urgency=low
+
+ * update prototype for and definition of basename function for compatibility
+ with glibc2.0, still in use on m68k. Closes: #45058
+
+ -- Bdale Garbee <bdale@gag.com> Wed, 15 Sep 1999 02:01:47 -0600
+
+gzip (1.2.4-31) unstable; urgency=medium
+
+ * fix problems I induced while merging the upstream patch in the last upload,
+ most notably omitting zless from the package.
+ Closes: #44883, #44885, #44890, #44882, #44887, #44895, #44896
+
+ -- Bdale Garbee <bdale@gag.com> Sun, 12 Sep 1999 12:06:00 -0600
+
+gzip (1.2.4-30) unstable; urgency=low
+
+ * upstream patch, closes: #28872
+ 1998-11-18 Paul Eggert <eggert@twinsun.com>
+ gzip.c (get_method): Don't complain about trailing zeros at
+ the end of a gzipped file, as they're commonly appended to fill
+ out a block (e.g. by GNU tar).
+ * update to FHS compliance
+
+ -- Bdale Garbee <bdale@gag.com> Fri, 10 Sep 1999 21:34:07 -0600
+
+gzip (1.2.4-29) unstable; urgency=low
+
+ * apply patch from Vincent Renardias that improves behavior when trying to
+ decompress a corrupted .gz file. Closes 7472, 16385
+
+ -- Bdale Garbee <bdale@gag.com> Wed, 27 Jan 1999 20:50:12 -0700
+
+gzip (1.2.4-28) frozen unstable; urgency=medium
+
+ * patch zforce to make it work at all, closes 22760
+ * patch to fix decompression of concatenated gzip files, closes 30537
+
+ -- Bdale Garbee <bdale@gag.com> Fri, 22 Jan 1999 10:43:09 -0700
+
+gzip (1.2.4-27) frozen unstable; urgency=low
+
+ * patch from Jean-loup (upstream maintainer) for zgrep.in to fix the
+ problems with -A and -B successfully passing to grep. Closes 21209.
+
+ -- Bdale Garbee <bdale@gag.com> Sat, 25 Apr 1998 22:47:15 -0600
+
+gzip (1.2.4-26) frozen unstable; urgency=low
+
+ * fix FSF address in copyright file, lintian now reports no errors
+ * minor tweak to Makefile to fix warnings during dh_installmanpages run
+
+ -- Bdale Garbee <bdale@gag.com> Tue, 24 Mar 1998 00:40:48 -0700
+
+gzip (1.2.4-25) frozen unstable; urgency=low
+
+ * update znew.in and zdiff.in to do save tempfile handling, closes 19794
+
+ -- Bdale Garbee <bdale@gag.com> Sat, 21 Mar 1998 23:48:26 -0700
+
+gzip (1.2.4-24) unstable; urgency=low
+
+ * minor fix for complaints about short files, closes 19159
+
+ -- Bdale Garbee <bdale@gag.com> Wed, 11 Mar 1998 02:21:50 -0700
+
+gzip (1.2.4-23) unstable; urgency=high
+
+ * respond to security advisory from Alan Cox via Christian Hudon, fixes
+ an obscure possibility to get gzip to execute code
+
+ -- Bdale Garbee <bdale@gag.com> Wed, 11 Mar 1998 02:16:59 -0700
+
+gzip (1.2.4-22) unstable; urgency=high
+
+ * gzexe modified to use tempfile in response to security advisory
+
+ -- Bdale Garbee <bdale@gag.com> Sat, 31 Jan 1998 14:30:20 -0700
+
+gzip (1.2.4-21) unstable; urgency=low
+
+ * fix from the upstream maintainer for voluminous "Broken Pipe" messages
+ when using 'zgrep -l' or equivalent. Closes bug 15178.
+
+ -- Bdale Garbee <bdale@gag.com> Sun, 4 Jan 1998 00:56:21 -0700
+
+gzip (1.2.4-20) unstable; urgency=low
+
+ * freshen rules file to match current debhelper
+ * improve handling of undocumented executables. Closes bug 13578.
+
+ -- Bdale Garbee <bdale@gag.com> Sun, 4 Jan 1998 00:56:21 -0700
+
+gzip (1.2.4-19) unstable; urgency=low
+
+ * change dependency to Pre-Depends, to keep dpkg from getting hosed during
+ libc6 upgrades. Closes 15091.
+ * switch from debmake to debhelper. In the process, closes 15412.
+
+ -- Bdale Garbee <bdale@gag.com> Mon, 8 Dec 1997 23:42:49 -0700
+
+gzip (1.2.4-18) unstable; urgency=low
+
+ * don't install INSTALL in the doc directory, closes bug 13224.
+
+ -- Bdale Garbee <bdale@gag.com> Fri, 5 Sep 1997 15:06:35 -0600
+
+gzip (1.2.4-17) unstable; urgency=low
+
+ * fix distribution problem in changelog file
+
+ -- Bdale Garbee <bdale@gag.com> Fri, 5 Sep 1997 15:06:35 -0600
+
+gzip (1.2.4-16) stable frozen unstable; urgency=low
+
+ * libc6
+ * tweaks to rules file to install Changelog, closes bug 12488
+
+ -- Bdale Garbee <bdale@gag.com> Thu, 4 Sep 1997 22:46:28 -0600
+
+gzip (1.2.4-15) stable frozen unstable; urgency=low
+
+ * fix minor security issue - race condition reported on bugtraq list
+ * rework debian/rules to build with debugging then strip
+
+ -- Bdale Garbee <bdale@gag.com> Fri, 14 Mar 1997 21:14:44 -0700
+
+gzip (1.2.4-14) stable frozen unstable; urgency=medium
+
+ * The -13 upload was built against a libc5 too new for 'stable'.
+
+ -- Bdale Garbee <bdale@gag.com> Thu, 28 Nov 1996 11:37:31 -0700
+
+gzip (1.2.4-13) stable frozen unstable; urgency=medium
+
+ * Fix missing "essential" flag on package, lost during standards update.
+ * Push this version back into stable to solve the 'compress' link problem.
+
+ -- Bdale Garbee <bdale@gag.com> Tue, 19 Nov 1996 09:14:14 -0700
+
+gzip (1.2.4-12) unstable; urgency=low
+
+ * New packag format.
+
+ -- Bdale Garbee <bdale@gag.com> Sat, 02 Nov 1996 14:47:42 -0800
+
+
+Thu Jul 18 01:30:22 MDT 1996 Bdale Garbee <bdale@gag.com>
+
+ * add zegrep and zfgrep links in /usr/bin (Bug#3326)
+ * add an extended description (Bug#3591)
+ * tweak control files to use dpkg-name, etc.
+
+Fri May 24 07:37:54 MDT 1996 Bdale Garbee <bdale@gag.com>
+
+ * don't provide a 'compress' link since it breaks things, but provide
+ an 'uncompress' link since it's useful.
+ * fix some administrivia
+
+Sun Apr 14 20:39:19 MDT 1996 Bdale Garbee <bdale@gag.com>
+
+ * change gzexe.in to not use BINDIR, but assume gzip is in PATH
+ * add Architecture field in the control file
+
+Wed Jan 17 00:07:00 MST 1996 Bdale Garbee <bdale@gag.com>
+
+ * switch targets in the Makefile to also install the links called
+ 'compress' and 'uncompress' since some utilities care about these,
+ and we're unlikely to ever have a 'compress' package because of the
+ intellectual property issues.
+
+Sat Dec 2 23:45:40 MST 1995 Bdale Garbee <bdale@gag.com>
+
+ * building for ELF
+ * add 'zless' as a near-clone of 'zmore', closes bug 1776
+ * unable to duplicate bug 1090, something has improved since then?
+ * add libc5 dependency
+ * new maintainer
+
--- /dev/null
+Source: gzip
+Section: utils
+Priority: required
+Maintainer: Bdale Garbee <bdale@gag.com>
+Uploaders: Carl Worth <cworth@cworth.org>
+Build-Depends: debhelper (>= 5), texinfo, autoconf, automake, autotools-dev, less
+Build-Depends-Indep: mingw-w64
+Standards-Version: 3.9.3
+Vcs-Git: git://git.gag.com/debian/gzip
+Vcs-Browser: http://git.gag.com/?p=debian/gzip
+
+Package: gzip
+Architecture: any
+Essential: yes
+Pre-Depends: ${shlibs:Depends}
+Depends: dpkg (>= 1.15.4) | install-info
+Suggests: less
+Description: GNU compression utilities
+ This package provides the standard GNU file compression utilities, which
+ are also the default compression tools for Debian. They typically operate
+ on files with names ending in '.gz', but can also decompress files ending
+ in '.Z' created with 'compress'.
+
+Package: gzip-win32
+Architecture: all
+Priority: extra
+Suggests: wine
+Description: GNU compression utility (win32 build)
+ This is a win32 version of gzip, meant to be used by the win32-loader
+ component of Debian-Installer.
--- /dev/null
+This package is maintained for Debian by Bdale Garbee <bdale@gag.com>, and
+was built from the sources found at:
+
+ ftp://ftp.gnu.org/gnu/gzip/
+
+Copyright (C) 1999, 2001-2002, 2006-2007, 2009-2010 Free Software Foundation,
+ Inc.
+Copyright (C) 1992-1993 Jean-loup Gailly
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3, or (at your option)
+ any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software Foundation,
+ Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */
+
+On Debian GNU/Linux systems, the complete text of the GNU General
+Public License can be found in `/usr/share/common-licenses/GPL'.
--- /dev/null
+bin
+usr/share/info
+usr/share/lintian/overrides
+usr/share/man/man1
--- /dev/null
+usr/share/win32
--- /dev/null
+gzip: package-contains-hardlink bin/gunzip
+gzip: package-contains-hardlink bin/zcat
+gzip: package-contains-hardlink bin/zcmp
+gzip: package-contains-hardlink bin/zegrep
+gzip: package-contains-hardlink bin/zfgrep
+gzip: package-contains-hardlink bin/uncompress
+gzip: executable-not-elf-or-script bin/uncompress
--- /dev/null
+--- a/gzip.1 2012-06-19 14:35:05.606885544 -0600
++++ b/gzip.1 2012-06-19 14:35:31.381160647 -0600
+@@ -299,7 +299,6 @@
+ When decompressing, add .suf to the beginning of the list of
+ suffixes to try, when deriving an output file name from an input file name.
+
+-.IR pack "(1)".
+ .TP
+ .B \-t --test
+ Test. Check the compressed file integrity.
+@@ -382,8 +381,7 @@
+ On Vax/VMS, the name of the environment variable is GZIP_OPT, to
+ avoid a conflict with the symbol set for invocation of the program.
+ .SH "SEE ALSO"
+-znew(1), zcmp(1), zmore(1), zforce(1), gzexe(1), zip(1), unzip(1), compress(1),
+-pack(1), compact(1)
++znew(1), zcmp(1), zmore(1), zforce(1), gzexe(1), zip(1), unzip(1), compress(1)
+ .PP
+ The
+ .I gzip
--- /dev/null
+--- gzip-1.5.orig/gzip.1
++++ gzip-1.5/gzip.1
+@@ -180,12 +180,12 @@ or decompressing.
+ The
+ .I gzip
+ file format is specified in P. Deutsch, \s-1GZIP\s0 file format
+-specification version 4.3, <ftp://ftp.isi.edu/in-notes/rfc1952.txt>,
++specification version 4.3, <http://www.ietf.org/rfc/rfc1952.txt>,
+ Internet RFC 1952 (May 1996). The
+ .I zip
+ deflation format is specified in P. Deutsch, \s-1DEFLATE\s0 Compressed
+ Data Format Specification version 1.3,
+-<ftp://ftp.isi.edu/in-notes/rfc1951.txt>, Internet RFC 1951 (May 1996).
++<http://www.ietf.org/rfc/rfc1951.txt>, Internet RFC 1951 (May 1996).
+
+ .SH OPTIONS
+ .TP
+@@ -387,13 +387,13 @@ The
+ .I gzip
+ file format is specified in P. Deutsch, \s-1GZIP\s0 file format
+ specification version 4.3,
+-.BR <ftp://ftp.isi.edu/in-notes/rfc1952.txt> ,
++.BR <http://www.ietf.org/rfc/rfc1952.txt> ,
+ Internet RFC 1952 (May 1996).
+ The
+ .I zip
+ deflation format is specified in P. Deutsch, \s-1DEFLATE\s0 Compressed
+ Data Format Specification version 1.3,
+-.BR <ftp://ftp.isi.edu/in-notes/rfc1951.txt> ,
++.BR <http://www.ietf.org/rfc/rfc1951.txt> ,
+ Internet RFC 1951 (May 1996).
+ .SH "DIAGNOSTICS"
+ Exit status is normally 0;
--- /dev/null
+diff -u -r gzip-1.5/deflate.c /home/bdale/debian/gzip/deflate.c
+--- gzip-1.5/deflate.c 2012-04-24 10:25:28.000000000 -0600
++++ /home/bdale/debian/gzip/deflate.c 2012-06-19 14:01:41.885498670 -0600
+@@ -131,6 +131,14 @@
+ #endif
+ /* Matches of length 3 are discarded if their distance exceeds TOO_FAR */
+
++#ifndef RSYNC_WIN
++# define RSYNC_WIN 8192
++#endif
++/* Size of rsync window, must be < MAX_DIST */
++
++#define RSYNC_SUM_MATCH(sum) (((sum) & (RSYNC_WIN - 1)) == 0)
++/* Whether window sum matches magic value */
++
+ /* ===========================================================================
+ * Local data used by the "longest match" routines.
+ */
+@@ -212,6 +220,8 @@
+ unsigned good_match;
+ /* Use a faster search when the previous match is longer than this */
+
++local ulg rsync_sum; /* rolling sum of rsync window */
++local ulg rsync_chunk_end; /* next rsync sequence point */
+
+ /* Values for max_lazy_match, good_match and max_chain_length, depending on
+ * the desired pack level (0..9). The values given below have been tuned to
+@@ -314,6 +324,10 @@
+ #endif
+ /* prev will be initialized on the fly */
+
++ /* rsync params */
++ rsync_chunk_end = 0xFFFFFFFFUL;
++ rsync_sum = 0;
++
+ /* Set the default configuration parameters:
+ */
+ max_lazy_match = configuration_table[pack_level].max_lazy;
+@@ -331,6 +345,7 @@
+
+ strstart = 0;
+ block_start = 0L;
++ rsync_chunk_end = 0xFFFFFFFFUL;
+ #ifdef ASMV
+ match_init(); /* initialize the asm code */
+ #endif
+@@ -550,6 +565,8 @@
+ memcpy((char*)window, (char*)window+WSIZE, (unsigned)WSIZE);
+ match_start -= WSIZE;
+ strstart -= WSIZE; /* we now have strstart >= MAX_DIST: */
++ if (rsync_chunk_end != 0xFFFFFFFFUL)
++ rsync_chunk_end -= WSIZE;
+
+ block_start -= (long) WSIZE;
+
+@@ -579,6 +596,39 @@
+ }
+ }
+
++local void rsync_roll(start, num)
++ unsigned start;
++ unsigned num;
++{
++ unsigned i;
++
++ if (start < RSYNC_WIN) {
++ /* before window fills. */
++ for (i = start; i < RSYNC_WIN; i++) {
++ if (i == start + num) return;
++ rsync_sum += (ulg)window[i];
++ }
++ num -= (RSYNC_WIN - start);
++ start = RSYNC_WIN;
++ }
++
++ /* buffer after window full */
++ for (i = start; i < start+num; i++) {
++ /* New character in */
++ rsync_sum += (ulg)window[i];
++ /* Old character out */
++ rsync_sum -= (ulg)window[i - RSYNC_WIN];
++ if (rsync_chunk_end == 0xFFFFFFFFUL && RSYNC_SUM_MATCH(rsync_sum))
++ rsync_chunk_end = i;
++ }
++}
++
++/* ===========================================================================
++ * Set rsync_chunk_end if window sum matches magic value.
++ */
++#define RSYNC_ROLL(s, n) \
++ do { if (rsync) rsync_roll((s), (n)); } while(0)
++
+ /* ===========================================================================
+ * Flush the current block, with given end-of-file flag.
+ * IN assertion: strstart is set to the end of the current match.
+@@ -626,7 +676,8 @@
+
+ lookahead -= match_length;
+
+- /* Insert new strings in the hash table only if the match length
++ RSYNC_ROLL(strstart, match_length);
++ /* Insert new strings in the hash table only if the match length
+ * is not too large. This saves time but degrades compression.
+ */
+ if (match_length <= max_insert_length) {
+@@ -654,9 +705,18 @@
+ /* No match, output a literal byte */
+ Tracevv((stderr,"%c",window[strstart]));
+ flush = ct_tally (0, window[strstart]);
++ RSYNC_ROLL(strstart, 1);
+ lookahead--;
+ strstart++;
+ }
++ if (rsync && strstart > rsync_chunk_end) {
++ ush attr = 0; /* ascii/binary flag */
++
++ flush = 1;
++ /* Reset huffman tree */
++ ct_init(&attr, &method);
++ rsync_chunk_end = 0xFFFFFFFFUL;
++ }
+ if (flush) FLUSH_BLOCK(0), block_start = strstart;
+
+ /* Make sure that we always have enough lookahead, except
+@@ -730,6 +790,7 @@
+ */
+ lookahead -= prev_length-1;
+ prev_length -= 2;
++ RSYNC_ROLL(strstart, prev_length+1);
+ do {
+ strstart++;
+ INSERT_STRING(strstart, hash_head);
+@@ -742,24 +803,51 @@
+ match_available = 0;
+ match_length = MIN_MATCH-1;
+ strstart++;
+- if (flush) FLUSH_BLOCK(0), block_start = strstart;
+
++ if (rsync && strstart > rsync_chunk_end) {
++ ush attr = 0; /* ascii/binary flag */
++
++ /* Reset huffman tree */
++ ct_init(&attr, &method);
++ rsync_chunk_end = 0xFFFFFFFFUL;
++ flush = 1;
++ }
++ if (flush) FLUSH_BLOCK(0), block_start = strstart;
+ } else if (match_available) {
+ /* If there was no match at the previous position, output a
+ * single literal. If there was a match but the current match
+ * is longer, truncate the previous match to a single literal.
+ */
+ Tracevv((stderr,"%c",window[strstart-1]));
+- if (ct_tally (0, window[strstart-1])) {
+- FLUSH_BLOCK(0), block_start = strstart;
+- }
++ flush = ct_tally (0, window[strstart-1]);
++ if (rsync && strstart > rsync_chunk_end) {
++ ush attr = 0; /* ascii/binary flag */
++
++ /* Reset huffman tree */
++ ct_init(&attr, &method);
++ rsync_chunk_end = 0xFFFFFFFFUL;
++
++ flush = 1;
++ }
++ if (flush) FLUSH_BLOCK(0), block_start = strstart;
++ RSYNC_ROLL(strstart, 1);
+ strstart++;
+ lookahead--;
+ } else {
+ /* There is no previous match to compare with, wait for
+ * the next step to decide.
+ */
++ if (rsync && strstart > rsync_chunk_end) {
++ ush attr = 0; /* ascii/binary flag */
++
++ /* Reset huffman tree */
++ ct_init(&attr, &method);
++ rsync_chunk_end = 0xFFFFFFFFUL;
++
++ FLUSH_BLOCK(0), block_start = strstart;
++ }
+ match_available = 1;
++ RSYNC_ROLL(strstart, 1);
+ strstart++;
+ lookahead--;
+ }
+diff -u -r gzip-1.5/doc/gzip.texi /home/bdale/debian/gzip/doc/gzip.texi
+--- gzip-1.5/doc/gzip.texi 2012-01-01 01:53:58.000000000 -0700
++++ /home/bdale/debian/gzip/doc/gzip.texi 2012-06-19 14:09:36.041559612 -0600
+@@ -207,6 +207,7 @@
+ -V, --version display version number
+ -1, --fast compress faster
+ -9, --best compress better
++ --rsyncable Make rsync-friendly archive
+
+ With no FILE, or when FILE is -, read standard input.
+
+@@ -353,6 +354,30 @@
+ into the directory and compress all the files it finds there (or
+ decompress them in the case of @command{gunzip}).
+
++@item --rsyncable
++While compressing, synchronize the output occasionally based on the
++input. This can reduce the compression slightly in some cases, but
++means that the @code{rsync} program can take advantage of similarities
++in the uncompressed input when syncronizing two files compressed with
++this flag. @code{gunzip} cannot tell the difference between a
++compressed file created with this option, and one created without it.
++
++@item --rsyncable
++While compressing, synchronize the output occasionally based on
++the input. This increases size by less than 1 percent most
++cases, but means that the @command{rsync} program can much more efficiently
++synchronize files compressed with this flag. @command{gunzip}
++cannot tell the difference between a compressed file created
++with this option, and one created without it.
++
++@item --rsyncable
++While compressing, synchronize the output occasionally based on the
++input. This can reduce the compression slightly in some cases, but
++means that the @code{rsync} program can take advantage of similarities
++in the uncompressed input when syncronizing two files compressed with
++this flag. @code{gunzip} cannot tell the difference between a
++compressed file created with this option, and one created without it.
++
+ @item --suffix @var{suf}
+ @itemx -S @var{suf}
+ Use suffix @var{suf} instead of @samp{.gz}. Any suffix can be
+--- gzip-1.5/gzip.c 2012-04-24 10:25:28.000000000 -0600
++++ /home/bdale/debian/gzip/gzip.c 2012-06-19 14:00:43.283873180 -0600
+@@ -213,6 +213,7 @@
+ unsigned insize; /* valid bytes in inbuf */
+ unsigned inptr; /* index of next byte to be processed in inbuf */
+ unsigned outcnt; /* bytes in output buffer */
++int rsync = 0; /* make ryncable chunks */
+
+ static int handled_sig[] =
+ {
+@@ -270,7 +271,7 @@
+ {"best", 0, 0, '9'}, /* compress better */
+ {"lzw", 0, 0, 'Z'}, /* make output compatible with old compress */
+ {"bits", 1, 0, 'b'}, /* max number of bits per code (implies -Z) */
+-
++ {"rsyncable", 0, 0, 'R'}, /* make rsync-friendly archive */
+ { 0, 0, 0, 0 }
+ };
+
+@@ -353,6 +354,7 @@
+ " -Z, --lzw produce output compatible with old compress",
+ " -b, --bits=BITS max number of bits per code (implies -Z)",
+ #endif
++ " --rsyncable Make rsync-friendly archive",
+ "",
+ "With no FILE, or when FILE is -, read standard input.",
+ "",
+@@ -481,8 +483,11 @@
+ #else
+ recursive = 1;
+ #endif
+- break;
+- case 'S':
++ break;
++ case 'R':
++ rsync = 1; break;
++
++ case 'S':
+ #ifdef NO_MULTIPLE_DOTS
+ if (*optarg == '.') optarg++;
+ #endif
+diff -u -r gzip-1.5/gzip.h /home/bdale/debian/gzip/gzip.h
+--- gzip-1.5/gzip.h 2012-01-01 01:53:58.000000000 -0700
++++ /home/bdale/debian/gzip/gzip.h 2012-06-19 13:57:36.833883093 -0600
+@@ -140,6 +140,7 @@
+ extern unsigned insize; /* valid bytes in inbuf */
+ extern unsigned inptr; /* index of next byte to be processed in inbuf */
+ extern unsigned outcnt; /* bytes in output buffer */
++extern int rsync; /* deflate into rsyncable chunks */
+
+ extern off_t bytes_in; /* number of input bytes */
+ extern off_t bytes_out; /* number of output bytes */
--- /dev/null
+rsyncable.diff
+gzip-man-pack.diff
+zdiff-man.diff
+rfc-urls.diff
+sigpipe.diff
--- /dev/null
+diff --git a/gzip.c b/gzip.c
+index 38e1373..0d9f499 100644
+--- a/gzip.c
++++ b/gzip.c
+@@ -223,7 +223,9 @@ static int handled_sig[] =
+ #ifdef SIGHUP
+ , SIGHUP
+ #endif
++#ifdef SIGPIPE
+ , SIGPIPE
++#endif
+ #ifdef SIGTERM
+ , SIGTERM
+ #endif
+@@ -556,7 +556,11 @@ int main (int argc, char **argv)
+ ALLOC(ush, tab_prefix1, 1L<<(BITS-1));
+ #endif
+
++#ifdef SIGPIPE
+ exiting_signal = quiet ? SIGPIPE : 0;
++#else
++ exiting_signal = 0;
++#endif
+ install_signal_handlers ();
+
+ /* And get to work */
--- /dev/null
+diff --git a/zdiff.1 b/zdiff.1
+index 588974c..3b0ace5 100644
+--- a/zdiff.1
++++ b/zdiff.1
+@@ -10,6 +10,7 @@ zcmp, zdiff \- compare compressed files
+ [ diff_options ] file1
+ [ file2 ]
+ .SH DESCRIPTION
++.P
+ .I Zcmp
+ and
+ .I zdiff
+@@ -23,11 +24,11 @@ All options specified are passed directly to
+ .I cmp
+ or
+ .IR diff "."
+-If only 1 file is specified, then the files compared are
+-.I file1
+-and an uncompressed
+-.IR file1 ".gz."
+-If two files are specified, then they are uncompressed if necessary and fed to
++If only one file is specified, then it is compared to a file with the same name
++without the
++.I ".gz"
++extension. If two files are specified, then they are uncompressed if necessary
++and fed to
+ .I cmp
+ or
+ .IR diff "."
--- /dev/null
+#!/usr/bin/make -f
+# Debian rules file for gzip, requires the debhelper package.
+# Crafted by Bdale Garbee, bdale@gag.com, 5 November 2000
+# Cleanup by Thorsten Glaser, tg@debian.org, 20 June 2012
+# based on the rules file of the jupp package
+
+# Comment this to turn off debhelper verbose mode.
+export DH_VERBOSE=1
+
+shellescape='$(subst ','\'',$(1))'
+shellexport=$(1)=$(call shellescape,${$(1)})
+
+DEB_BUILD_ARCH=$(shell dpkg-architecture -qDEB_BUILD_ARCH)
+DEB_HOST_ARCH=$(shell dpkg-architecture -qDEB_HOST_ARCH)
+DEB_HOST_GNU_TYPE=$(shell dpkg-architecture -qDEB_HOST_GNU_TYPE)
+
+# Automatic ${CC} selection for cross-compiles
+
+# is ${CC} defined anywhere (other than implicit rules?)
+ifneq (,$(findstring $(origin CC),default undefined))
+# no - then default to gcc (or cross-gcc)
+ifneq (${DEB_BUILD_ARCH},${DEB_HOST_ARCH})
+CC= ${DEB_HOST_GNU_TYPE}-gcc
+else
+CC= gcc
+endif
+endif
+
+EXTRA_CFLAGS= -Wall
+EXTRA_CPPFLAGS=
+
+ifeq (${DEB_HOST_ARCH},amd64)
+EXTRA_CPPFLAGS+= -DUNALIGNED_OK
+endif
+
+# Automatic dpkg-buildflags selection, backport-friendly
+
+ifneq (,$(wildcard /usr/share/dpkg/buildflags.mk))
+# dpkg-dev (>= 1.16.1~)
+DEB_CFLAGS_MAINT_APPEND=${EXTRA_CFLAGS}
+DEB_CPPFLAGS_MAINT_APPEND=${EXTRA_CPPFLAGS}
+# maybe turn this on later
+#DEB_BUILD_MAINT_OPTIONS=hardening=+all
+include /usr/share/dpkg/buildflags.mk
+else
+# old-fashioned way to determine build flags
+CFLAGS= -O$(if $(findstring noopt,${DEB_BUILD_OPTIONS}),0,2) -g
+CFLAGS+= ${EXTRA_CFLAGS}
+LDFLAGS+= ${EXTRA_LDFLAGS}
+endif
+
+# maybe turn this on later
+#ifneq (,$(filter parallel=%,$(DEB_BUILD_OPTIONS)))
+#NUMJOBS= $(patsubst parallel=%,%,$(filter parallel=%,$(DEB_BUILD_OPTIONS)))
+#MAKEFLAGS+= -j${NUMJOBS}
+#endif
+
+# whitespace-safe path to source directory
+_topdir=$(call shellescape,$(shell pwd))
+
+CONFIGURE_ARGS= --prefix=/usr \
+ --bindir=/bin \
+ --infodir=${_topdir}/debian/gzip/usr/share/info \
+ --mandir=${_topdir}/debian/gzip/usr/share/man
+
+ifneq (${DEB_BUILD_ARCH},${DEB_HOST_ARCH})
+CONFIGURE_ARGS+= --host=${DEB_HOST_GNU_TYPE}
+endif
+
+reconf-stamp:
+ cp -f /usr/share/misc/config.sub build-aux/config.sub
+ cp -f /usr/share/misc/config.guess build-aux/config.guess
+ autoreconf -v
+ :>$@
+
+configure: configure-stamp
+configure-stamp: reconf-stamp
+ dh_testdir
+ mkdir -p builddir
+ cd builddir && env \
+ $(foreach i,CC CFLAGS CPPFLAGS LDFLAGS,$(call shellexport,$i)) \
+ ../configure ${CONFIGURE_ARGS}
+ :>$@
+
+configure-indep: configure-indep-stamp
+configure-indep-stamp: reconf-stamp
+ dh_testdir
+ mkdir -p builddir-indep
+ cd builddir-indep && ../configure --host=i686-w64-mingw32
+ :>$@
+
+build: build-stamp build-indep-stamp
+
+build-arch: build-stamp
+build-stamp: configure-stamp
+ dh_testdir
+ ${MAKE} -C builddir
+ifeq (,$(filter nocheck,${DEB_BUILD_OPTIONS}))
+ifeq (${DEB_BUILD_ARCH},${DEB_HOST_ARCH})
+ ${MAKE} -C builddir check
+endif
+endif
+ :>$@
+
+build-indep: build-indep-stamp
+build-indep-stamp: configure-indep-stamp
+ dh_testdir
+ ${MAKE} -C builddir-indep
+ :>$@
+
+clean:
+ dh_testdir
+ dh_testroot
+ -rm -f build-stamp build-indep-stamp configure-stamp configure-indep-stamp reconf-stamp
+ -rm -rf builddir builddir-indep
+ dh_clean
+
+binary: binary-arch binary-indep
+
+binary-indep: build-indep-stamp
+ dh_testdir
+ dh_testroot
+ if test -x "$$(which dh_prep)"; then dh_prep; else dh_clean -k; fi
+ dh_installdirs
+ i686-w64-mingw32-strip builddir-indep/gzip.exe
+ install -m 0755 builddir-indep/gzip.exe \
+ debian/gzip-win32/usr/share/win32/
+ dh_installdocs -i README* TODO
+ dh_installchangelogs -i ChangeLog
+ dh_lintian -i
+ dh_compress -i
+ dh_fixperms -i
+ dh_installdeb -i
+ dh_gencontrol -i
+ dh_md5sums -i
+ dh_builddeb -i
+
+binary-arch: build-stamp
+ dh_testdir
+ dh_testroot
+ if test -x "$$(which dh_prep)"; then dh_prep; else dh_clean -k; fi
+ dh_installdirs
+ ${MAKE} -C builddir install \
+ prefix=${_topdir}/debian/gzip/usr \
+ bindir=${_topdir}/debian/gzip/bin
+ dh_testdir -s
+ dh_testroot -s
+ dh_installdocs -s README* TODO
+ dh_installman *.1
+ dh_installinfo -s doc/gzip.info
+ dh_installchangelogs -s ChangeLog
+ dh_link -s
+ dh_lintian -s
+ dh_strip -s
+ dh_compress -s
+ ln -s gunzip.1.gz debian/gzip/usr/share/man/man1/uncompress.1.gz
+ ln -s zgrep.1.gz debian/gzip/usr/share/man/man1/zegrep.1.gz
+ ln -s zgrep.1.gz debian/gzip/usr/share/man/man1/zfgrep.1.gz
+ dh_fixperms -s
+ dh_makeshlibs -s
+ dh_installdeb -s
+ dh_shlibdeps -s
+ dh_gencontrol -s
+ dh_md5sums -s
+ dh_builddeb -s
+
+.PHONY: binary binary-arch binary-indep build build-arch build-indep clean
+.PHONY: configure configure-indep
--- /dev/null
+3.0 (quilt)
--- /dev/null
+gzip source: debhelper-but-no-misc-depends gzip-win32
+gzip source: debhelper-but-no-misc-depends gzip
--- /dev/null
+version=2
+ftp://ftp.gnu.org/gnu/gzip/gzip-([\d\.\d]+)\.tar\.gz
#endif
/* Matches of length 3 are discarded if their distance exceeds TOO_FAR */
+#ifndef RSYNC_WIN
+# define RSYNC_WIN 8192
+#endif
+/* Size of rsync window, must be < MAX_DIST */
+
+#define RSYNC_SUM_MATCH(sum) (((sum) & (RSYNC_WIN - 1)) == 0)
+/* Whether window sum matches magic value */
+
/* ===========================================================================
* Local data used by the "longest match" routines.
*/
unsigned good_match;
/* Use a faster search when the previous match is longer than this */
+local ulg rsync_sum; /* rolling sum of rsync window */
+local ulg rsync_chunk_end; /* next rsync sequence point */
/* Values for max_lazy_match, good_match and max_chain_length, depending on
* the desired pack level (0..9). The values given below have been tuned to
#endif
/* prev will be initialized on the fly */
+ /* rsync params */
+ rsync_chunk_end = 0xFFFFFFFFUL;
+ rsync_sum = 0;
+
/* Set the default configuration parameters:
*/
max_lazy_match = configuration_table[pack_level].max_lazy;
strstart = 0;
block_start = 0L;
+ rsync_chunk_end = 0xFFFFFFFFUL;
#ifdef ASMV
match_init(); /* initialize the asm code */
#endif
memcpy((char*)window, (char*)window+WSIZE, (unsigned)WSIZE);
match_start -= WSIZE;
strstart -= WSIZE; /* we now have strstart >= MAX_DIST: */
+ if (rsync_chunk_end != 0xFFFFFFFFUL)
+ rsync_chunk_end -= WSIZE;
block_start -= (long) WSIZE;
}
}
+local void rsync_roll(start, num)
+ unsigned start;
+ unsigned num;
+{
+ unsigned i;
+
+ if (start < RSYNC_WIN) {
+ /* before window fills. */
+ for (i = start; i < RSYNC_WIN; i++) {
+ if (i == start + num) return;
+ rsync_sum += (ulg)window[i];
+ }
+ num -= (RSYNC_WIN - start);
+ start = RSYNC_WIN;
+ }
+
+ /* buffer after window full */
+ for (i = start; i < start+num; i++) {
+ /* New character in */
+ rsync_sum += (ulg)window[i];
+ /* Old character out */
+ rsync_sum -= (ulg)window[i - RSYNC_WIN];
+ if (rsync_chunk_end == 0xFFFFFFFFUL && RSYNC_SUM_MATCH(rsync_sum))
+ rsync_chunk_end = i;
+ }
+}
+
+/* ===========================================================================
+ * Set rsync_chunk_end if window sum matches magic value.
+ */
+#define RSYNC_ROLL(s, n) \
+ do { if (rsync) rsync_roll((s), (n)); } while(0)
+
/* ===========================================================================
* Flush the current block, with given end-of-file flag.
* IN assertion: strstart is set to the end of the current match.
lookahead -= match_length;
- /* Insert new strings in the hash table only if the match length
+ RSYNC_ROLL(strstart, match_length);
+ /* Insert new strings in the hash table only if the match length
* is not too large. This saves time but degrades compression.
*/
if (match_length <= max_insert_length) {
/* No match, output a literal byte */
Tracevv((stderr,"%c",window[strstart]));
flush = ct_tally (0, window[strstart]);
+ RSYNC_ROLL(strstart, 1);
lookahead--;
strstart++;
}
+ if (rsync && strstart > rsync_chunk_end) {
+ ush attr = 0; /* ascii/binary flag */
+
+ flush = 1;
+ /* Reset huffman tree */
+ ct_init(&attr, &method);
+ rsync_chunk_end = 0xFFFFFFFFUL;
+ }
if (flush) FLUSH_BLOCK(0), block_start = strstart;
/* Make sure that we always have enough lookahead, except
*/
lookahead -= prev_length-1;
prev_length -= 2;
+ RSYNC_ROLL(strstart, prev_length+1);
do {
strstart++;
INSERT_STRING(strstart, hash_head);
match_available = 0;
match_length = MIN_MATCH-1;
strstart++;
- if (flush) FLUSH_BLOCK(0), block_start = strstart;
+ if (rsync && strstart > rsync_chunk_end) {
+ ush attr = 0; /* ascii/binary flag */
+
+ /* Reset huffman tree */
+ ct_init(&attr, &method);
+ rsync_chunk_end = 0xFFFFFFFFUL;
+ flush = 1;
+ }
+ if (flush) FLUSH_BLOCK(0), block_start = strstart;
} else if (match_available) {
/* If there was no match at the previous position, output a
* single literal. If there was a match but the current match
* is longer, truncate the previous match to a single literal.
*/
Tracevv((stderr,"%c",window[strstart-1]));
- if (ct_tally (0, window[strstart-1])) {
- FLUSH_BLOCK(0), block_start = strstart;
- }
+ flush = ct_tally (0, window[strstart-1]);
+ if (rsync && strstart > rsync_chunk_end) {
+ ush attr = 0; /* ascii/binary flag */
+
+ /* Reset huffman tree */
+ ct_init(&attr, &method);
+ rsync_chunk_end = 0xFFFFFFFFUL;
+
+ flush = 1;
+ }
+ if (flush) FLUSH_BLOCK(0), block_start = strstart;
+ RSYNC_ROLL(strstart, 1);
strstart++;
lookahead--;
} else {
/* There is no previous match to compare with, wait for
* the next step to decide.
*/
+ if (rsync && strstart > rsync_chunk_end) {
+ ush attr = 0; /* ascii/binary flag */
+
+ /* Reset huffman tree */
+ ct_init(&attr, &method);
+ rsync_chunk_end = 0xFFFFFFFFUL;
+
+ FLUSH_BLOCK(0), block_start = strstart;
+ }
match_available = 1;
+ RSYNC_ROLL(strstart, 1);
strstart++;
lookahead--;
}
--- /dev/null
+/gendocs_template
-V, --version display version number
-1, --fast compress faster
-9, --best compress better
+ --rsyncable Make rsync-friendly archive
With no FILE, or when FILE is -, read standard input.
into the directory and compress all the files it finds there (or
decompress them in the case of @command{gunzip}).
+@item --rsyncable
+While compressing, synchronize the output occasionally based on the
+input. This can reduce the compression slightly in some cases, but
+means that the @code{rsync} program can take advantage of similarities
+in the uncompressed input when syncronizing two files compressed with
+this flag. @code{gunzip} cannot tell the difference between a
+compressed file created with this option, and one created without it.
+
+@item --rsyncable
+While compressing, synchronize the output occasionally based on
+the input. This increases size by less than 1 percent most
+cases, but means that the @command{rsync} program can much more efficiently
+synchronize files compressed with this flag. @command{gunzip}
+cannot tell the difference between a compressed file created
+with this option, and one created without it.
+
+@item --rsyncable
+While compressing, synchronize the output occasionally based on the
+input. This can reduce the compression slightly in some cases, but
+means that the @code{rsync} program can take advantage of similarities
+in the uncompressed input when syncronizing two files compressed with
+this flag. @code{gunzip} cannot tell the difference between a
+compressed file created with this option, and one created without it.
+
@item --suffix @var{suf}
@itemx -S @var{suf}
Use suffix @var{suf} instead of @samp{.gz}. Any suffix can be
unsigned insize; /* valid bytes in inbuf */
unsigned inptr; /* index of next byte to be processed in inbuf */
unsigned outcnt; /* bytes in output buffer */
+int rsync = 0; /* make ryncable chunks */
static int handled_sig[] =
{
{"best", 0, 0, '9'}, /* compress better */
{"lzw", 0, 0, 'Z'}, /* make output compatible with old compress */
{"bits", 1, 0, 'b'}, /* max number of bits per code (implies -Z) */
-
+ {"rsyncable", 0, 0, 'R'}, /* make rsync-friendly archive */
{ 0, 0, 0, 0 }
};
" -Z, --lzw produce output compatible with old compress",
" -b, --bits=BITS max number of bits per code (implies -Z)",
#endif
+ " --rsyncable Make rsync-friendly archive",
"",
"With no FILE, or when FILE is -, read standard input.",
"",
#else
recursive = 1;
#endif
- break;
- case 'S':
+ break;
+ case 'R':
+ rsync = 1; break;
+
+ case 'S':
#ifdef NO_MULTIPLE_DOTS
if (*optarg == '.') optarg++;
#endif
ALLOC(ush, tab_prefix1, 1L<<(BITS-1));
#endif
+#ifdef SIGPIPE
exiting_signal = quiet ? SIGPIPE : 0;
+#else
+ exiting_signal = 0;
+#endif
install_signal_handlers ();
/* And get to work */
extern unsigned insize; /* valid bytes in inbuf */
extern unsigned inptr; /* index of next byte to be processed in inbuf */
extern unsigned outcnt; /* bytes in output buffer */
+extern int rsync; /* deflate into rsyncable chunks */
extern off_t bytes_in; /* number of input bytes */
extern off_t bytes_out; /* number of output bytes */
--- /dev/null
+config.h
+fcntl.h
+libgzip.a
+stamp-h1
+stdlib.h
+time.h
+unistd.h
+sys/stat.h
--- /dev/null
+/asm-underscore.m4
+/cloexec.m4
+/configmake.m4
+/gnulib-comp.m4
+/gnulib-tool.m4
+/wchar_h.m4
+/wctype_h.m4
[ diff_options ] file1
[ file2 ]
.SH DESCRIPTION
+.P
.I Zcmp
and
.I zdiff