diff --git a/gzip-1.6.tar.xz b/gzip-1.6.tar.xz deleted file mode 100644 index a4f3a3f..0000000 --- a/gzip-1.6.tar.xz +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:37dfed1a485d53212c43b3fa2a7c7952f09bf5cd86e37121c222341ee1b27847 -size 725084 diff --git a/gzip-1.6.tar.xz.sig b/gzip-1.6.tar.xz.sig deleted file mode 100644 index 7f710d7..0000000 --- a/gzip-1.6.tar.xz.sig +++ /dev/null @@ -1,19 +0,0 @@ ------BEGIN PGP SIGNATURE----- -Version: GnuPG v1.4.13 (GNU/Linux) - -iQJ8BAABCgBmBQJRtREaXxSAAAAAAC4AKGlzc3Vlci1mcHJAbm90YXRpb25zLm9w -ZW5wZ3AuZmlmdGhob3JzZW1hbi5uZXQxNTVEM0ZDNTAwQzgzNDQ4NkQxRUVBNjc3 -RkQ5RkNDQjAwMEJFRUVFAAoJEH/Z/MsAC+7upigP/AwQtlAaGTR0xGk0BGuM537R -ucSzRKO7buIEgeS9zl5UkrdoKtt3r+SDRlV3R7SuBFPERg98ZJxwQ4h9bHPsi6OK -4DNkSrqJQq5f8qCI6bfcQ86NX17XgPYgo+Hg+zb+48jcXOO70cyS588ZV14a9p0T -EQHSO7ur9PFSmonPH77WHqvF15PrczIzwHxHDRVyEQEufIxtGOsZaS+JiZ7U8biB -18wNviZMcXsrM36Wfq/okHJMnvly6pegE0SoMIExNRN3pFgjZNJUopiW/lLThHmI -jna/XOyLoOJVvRdMaQc8Zp7wrzfOJVNGcJIFVhJaRZ3MMk/UxSeGOUUWJ/Du8n5r -2tizxqOwOgGuoPGCGO66f53iUytklOA8rwufF3GmaF/YvtYFgpH75pFTqmJPeh2h -66TnFBDLbjnTKUQXhzEaXSY1o2J+IExwMOYVhB5ONbMliuquOtMT4mjYQ9AsTFXM -6hVwSHSE4Wbu6PT2pXzJdF207xOjD0q63sSkHRPBfOapkYZl7xeIWhEcogQ5E6HZ -GmPca1apkGRHoCU13+DQJGAAWMFV8iLg9ljaLQwTiMMljLsTI86m6suij7XyHgPg -slWBqWPWC+vv83tVrUSh/ICHgNby0Bkos1rIlHkdgqlaUijhBWaOgi+Xec5Bwnj3 -q/9pT4zyqOgNAGvwWwDU -=hSUh ------END PGP SIGNATURE----- diff --git a/gzip-1.7.tar.xz b/gzip-1.7.tar.xz new file mode 100644 index 0000000..a94691d --- /dev/null +++ b/gzip-1.7.tar.xz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:fb31c57e7ce7703596ef57329be7cc5c5fd741b4a0f659fea7ee6a54706b41ab +size 764056 diff --git a/gzip-1.7.tar.xz.sig b/gzip-1.7.tar.xz.sig new file mode 100644 index 0000000..656aba7 --- /dev/null +++ b/gzip-1.7.tar.xz.sig @@ -0,0 +1,16 @@ +-----BEGIN PGP SIGNATURE----- + +iQIcBAABCgAGBQJW+K14AAoJEH/Z/MsAC+7uNLkP/ipIhe6JZzZUx92DZoB77KKp +2sA0YNlwklsSrEm94xEWMFY+VxrX/3QZIghmrOb/tqREwxb7jEBDnvve+5YlL91g +jI6CnwE3ESRQHLunLQIxYXxUp7WsO+/rvN2t7L1hhZBUYVn/5K+o9Kzs1zWeDbyO +nnSe1fqtKB96t222bxJVU9bHeZCDSoXZB8P1+etbSPymiNcTFpcVlmsovVZgwgq7 +2lQWFY6eIY8V1ojjgrZskHN6tSAIfvlqEiKZDQTMmxLdBLo6ZKwqEdFPImdUF8Yr +vS/P/gTqLekjQI3NP9d2g/IKw/YaL3qJy2CKIs0ywEBGqExHslvE0I0JAaTfJNPb +vYzjoDx2DtFAb4/bFy9P2woTp19DYmq4cnneDKkbPaGOsW/TJBphW4bpHJTCJGDa +qBnDLvjGdGWtqNF3I3c3j9kK3EUCHhC+/RmZR8R46Sec4DHTPXKsBvk624AUFBvZ +83ranuRfIXocTTyhqbSHHXPxE6M7T1VduiiOAdH+qHbf5HIfiHs4MvtHvPhmSZYF +RkcU9beFaTHxzRh55MMr6iL7ZRAqgF1lWPBDN2j8d+VbFd6gpxP415JBVL5FUjzZ +ihzyG/hO58styNaDBNjbxZboNUgu0h2owcaiC4fP19ubK96IxqM9H+TKNhDgDAjy +WqN91ABn2tmC4p6Y2ELY +=oyX2 +-----END PGP SIGNATURE----- diff --git a/gzip-rsyncable.diff b/gzip-rsyncable.diff deleted file mode 100644 index cb33dd0..0000000 --- a/gzip-rsyncable.diff +++ /dev/null @@ -1,308 +0,0 @@ -NOTE: this patch is for _gzip_! - -This is pending for actual inclusion in gzip. It is currently being -tried out in the default gzip for Debian Sarge, and may go into the -upstream gzip at somepoint in the not-too-distant future. - -================================================================================ -Index: gzip-1.5/deflate.c -=================================================================== ---- gzip-1.5.orig/deflate.c 2012-04-24 18:25:28.000000000 +0200 -+++ gzip-1.5/deflate.c 2012-10-16 13:56:09.316621817 +0200 -@@ -131,6 +131,14 @@ - #endif - /* Matches of length 3 are discarded if their distance exceeds TOO_FAR */ - -+#ifndef RSYNC_WIN -+# define RSYNC_WIN 4096 -+#endif -+/* Size of rsync window, must be < MAX_DIST */ -+ -+#define RSYNC_SUM_MATCH(sum) ((sum) % RSYNC_WIN == 0) -+/* Whether window sum matches magic value */ -+ - /* =========================================================================== - * Local data used by the "longest match" routines. - */ -@@ -212,6 +220,8 @@ local int compr_level; - 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 @@ void lm_init (pack_level, flags) - #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; -@@ -550,6 +564,8 @@ local void fill_window() - 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,13 +595,46 @@ local void fill_window() - } - } - -+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. - */ - #define FLUSH_BLOCK(eof) \ - flush_block(block_start >= 0L ? (char*)&window[(unsigned)block_start] : \ -- (char*)NULL, (long)strstart - block_start, (eof)) -+ (char*)NULL, (long)strstart - block_start, flush-1, (eof)) - - /* =========================================================================== - * Processes a new input file and return its compressed length. This -@@ -596,7 +645,7 @@ local void fill_window() - local off_t deflate_fast() - { - IPos hash_head; /* head of the hash chain */ -- int flush; /* set if current block must be flushed */ -+ int flush; /* set if current block must be flushed, 2=>and padded */ - unsigned match_length = 0; /* length of best match */ - - prev_length = MIN_MATCH-1; -@@ -626,6 +675,7 @@ local off_t deflate_fast() - - lookahead -= 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. - */ -@@ -655,8 +705,13 @@ local off_t deflate_fast() - Tracevv((stderr,"%c",window[strstart])); - flush = ct_tally (0, window[strstart]); - lookahead--; -+ RSYNC_ROLL(strstart, 1); - strstart++; - } -+ if (rsync && strstart > rsync_chunk_end) { -+ rsync_chunk_end = 0xFFFFFFFFUL; -+ flush = 2; -+ } - if (flush) FLUSH_BLOCK(0), block_start = strstart; - - /* Make sure that we always have enough lookahead, except -@@ -730,6 +785,7 @@ off_t deflate() - */ - lookahead -= prev_length-1; - prev_length -= 2; -+ RSYNC_ROLL(strstart, prev_length+1); - do { - strstart++; - INSERT_STRING(strstart, hash_head); -@@ -742,24 +798,39 @@ off_t deflate() - match_available = 0; - match_length = MIN_MATCH-1; - strstart++; -- if (flush) FLUSH_BLOCK(0), block_start = strstart; - -+ if (rsync && strstart > rsync_chunk_end) { -+ rsync_chunk_end = 0xFFFFFFFFUL; -+ flush = 2; -+ } -+ 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) { -+ rsync_chunk_end = 0xFFFFFFFFUL; -+ flush = 2; -+ } -+ 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) { -+ /* Reset huffman tree */ -+ rsync_chunk_end = 0xFFFFFFFFUL; -+ flush = 2; -+ FLUSH_BLOCK(0), block_start = strstart; -+ } - match_available = 1; -+ RSYNC_ROLL(strstart, 1); - strstart++; - lookahead--; - } -Index: gzip-1.5/doc/gzip.texi -=================================================================== ---- gzip-1.5.orig/doc/gzip.texi 2012-01-01 09:53:58.000000000 +0100 -+++ gzip-1.5/doc/gzip.texi 2012-10-16 13:56:09.317621847 +0200 -@@ -353,6 +353,14 @@ specified on the command line are direct - 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 increases size by less than 1 percent most 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 -Index: gzip-1.5/gzip.c -=================================================================== ---- gzip-1.5.orig/gzip.c 2012-04-24 18:25:28.000000000 +0200 -+++ gzip-1.5/gzip.c 2012-10-16 13:56:09.318621877 +0200 -@@ -213,6 +213,7 @@ int ofd; /* output fil - 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,6 +271,7 @@ static const struct option longopts[] = - {"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 +355,7 @@ local void help() - " -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.", - "", -@@ -482,6 +485,8 @@ int main (int argc, char **argv) - recursive = 1; - #endif - break; -+ case 'R': -+ rsync = 1; break; - case 'S': - #ifdef NO_MULTIPLE_DOTS - if (*optarg == '.') optarg++; -Index: gzip-1.5/gzip.h -=================================================================== ---- gzip-1.5.orig/gzip.h 2012-01-01 09:53:58.000000000 +0100 -+++ gzip-1.5/gzip.h 2012-10-16 14:01:29.319241177 +0200 -@@ -140,6 +140,7 @@ EXTERN(uch, window); /* Sliding - 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 */ -@@ -287,7 +288,7 @@ extern off_t deflate (void); - /* in trees.c */ - extern void ct_init (ush *attr, int *method); - extern int ct_tally (int dist, int lc); --extern off_t flush_block (char *buf, ulg stored_len, int eof); -+extern off_t flush_block (char *buf, ulg stored_len, int pad, int eof); - - /* in bits.c */ - extern void bi_init (file_t zipfile); -Index: gzip-1.5/trees.c -=================================================================== ---- gzip-1.5.orig/trees.c 2012-01-01 09:53:58.000000000 +0100 -+++ gzip-1.5/trees.c 2012-10-16 13:56:09.318621877 +0200 -@@ -59,12 +59,13 @@ - * void ct_tally (int dist, int lc); - * Save the match info and tally the frequency counts. - * -- * off_t flush_block (char *buf, ulg stored_len, int eof) -+ * off_t flush_block (char *buf, ulg stored_len, int pad, int eof) - * Determine the best encoding for the current block: dynamic trees, - * static trees or store, and output the encoded block to the zip -- * file. Returns the total compressed length for the file so far. -- * -- */ -+ * file. If pad is set, pads the block to the next -+ * byte. Returns the total compressed length for the file so -+ * far. -+ * */ - - #include - #include -@@ -856,9 +857,10 @@ local void send_all_trees(lcodes, dcodes - * trees or store, and output the encoded block to the zip file. This function - * returns the total compressed length for the file so far. - */ --off_t flush_block(buf, stored_len, eof) -+off_t flush_block(buf, stored_len, pad, eof) - char *buf; /* input block, or NULL if too old */ - ulg stored_len; /* length of input block */ -+ int pad; /* pad output to byte boundary */ - int eof; /* true if this is the last block for a file */ - { - ulg opt_lenb, static_lenb; /* opt_len and static_len in bytes */ -@@ -951,6 +953,10 @@ off_t flush_block(buf, stored_len, eof) - Assert (input_len == bytes_in, "bad input size"); - bi_windup(); - compressed_len += 7; /* align on byte boundary */ -+ } else if (pad && (compressed_len % 8) != 0) { -+ send_bits((STORED_BLOCK<<1)+eof, 3); /* send block type */ -+ compressed_len = (compressed_len + 3 + 7) & ~7L; -+ copy_block(buf, 0, 1); /* with header */ - } - - return compressed_len >> 3; diff --git a/gzip.changes b/gzip.changes index 693923a..7d17e88 100644 --- a/gzip.changes +++ b/gzip.changes @@ -1,3 +1,22 @@ +------------------------------------------------------------------- +Tue Mar 29 07:45:50 UTC 2016 - tchvatal@suse.com + +- Version update to release 1.7: + * gzip now accepts the --synchronous option + * gzip now accepts the --rsyncable option + * The GZIP environment variable is now obsolescent + * Installed programs like 'zgrep' now use the PATH environment variable as + usual to find subsidiary programs like 'gzip' and 'grep' +- Remove obsolete patch tempfile.diff +- Remove upstreamed patch gzip-rsyncable.diff +- Rebase manpage-no-date.patch to apply to 1.7 version + +------------------------------------------------------------------- +Tue Mar 29 07:42:10 UTC 2016 - tchvatal@suse.com + +- Rename reproducible.patch to something actually explanatory: + * manpage-no-date.patch + ------------------------------------------------------------------- Sun Mar 20 14:51:03 UTC 2016 - bwiedemann@suse.com diff --git a/gzip.spec b/gzip.spec index f1ad14a..cc617a4 100644 --- a/gzip.spec +++ b/gzip.spec @@ -17,7 +17,7 @@ Name: gzip -Version: 1.6 +Version: 1.7 Release: 0 Summary: GNU Zip Compression Utilities License: GPL-2.0+ @@ -27,17 +27,15 @@ Source: http://ftp.gnu.org/gnu/%{name}/%{name}-%{version}.tar.xz Source2: http://ftp.gnu.org/gnu/%{name}/%{name}-%{version}.tar.xz.sig Source3: %{name}.keyring Patch0: zgrep.diff -Patch1: tempfile.diff Patch2: zmore.diff Patch3: non-exec-stack.diff -Patch4: http://rsync.samba.org/ftp/unpacked/rsync/patches/gzip-rsyncable.diff Patch6: zdiff.diff # PATCH FIX OPENSUSE BNC#799561 - zgrep silently fails on LZMA compressed files Patch7: xz_lzma.patch -Patch8: reproducible.patch +Patch8: manpage-no-date.patch BuildRequires: makeinfo BuildRequires: xz -Requires(post): %{install_info_prereq} +Requires(post): %{install_info_prereq} BuildRoot: %{_tmppath}/%{name}-%{version}-build %description @@ -47,13 +45,10 @@ while keeping the same ownership modes and access and modification times. %prep -%{?gpg_verify: %gpg_verify %{SOURCE2}} %setup -q %patch0 -%patch1 %patch2 -p1 %patch3 -%patch4 -p1 %patch6 %patch7 -p1 %patch8 -p1 @@ -69,7 +64,7 @@ profile_gzip() { tmpfile=$(mktemp) trap "rm -f $tmpfile $tmpfile.gz" EXIT - tar -cf $tmpfile /usr || true + tar -cf $tmpfile %{_prefix} || true time ./gzip $tmpfile time ./gzip -d < $tmpfile.gz > /dev/null } @@ -94,7 +89,7 @@ for i in 1 2 3 4 5 6 7 8 9; do done %install -make DESTDIR=%{buildroot} install %{?_smp_mflags} +make %{?_smp_mflags} DESTDIR=%{buildroot} install #UsrMerge mkdir -p %{buildroot}/bin ln -sf %{_bindir}/gzip %{_bindir}/gunzip %{_bindir}/zcat %{buildroot}/bin @@ -109,13 +104,13 @@ ln -sf zmore.1 %{buildroot}%{_mandir}/man1/zless.1 #EndUsrMerge %{_bindir}/* %doc README AUTHORS ChangeLog TODO NEWS THANKS -%doc %{_infodir}/*.gz -%doc %{_mandir}/man*/*.gz +%{_infodir}/*.* +%{_mandir}/man*/*.* %post %install_info --info-dir=%{_infodir} %{_infodir}/%{name}.info.gz -%postun +%preun %install_info_delete --info-dir=%{_infodir} %{_infodir}/%{name}.info.gz %changelog diff --git a/reproducible.patch b/manpage-no-date.patch similarity index 74% rename from reproducible.patch rename to manpage-no-date.patch index d3d81aa..0493d63 100644 --- a/reproducible.patch +++ b/manpage-no-date.patch @@ -1,8 +1,8 @@ -Index: gzip-1.6/doc/gzip.texi +Index: gzip-1.7/doc/gzip.texi =================================================================== ---- gzip-1.6.orig/doc/gzip.texi -+++ gzip-1.6/doc/gzip.texi -@@ -8,7 +8,7 @@ +--- gzip-1.7.orig/doc/gzip.texi ++++ gzip-1.7/doc/gzip.texi +@@ -9,7 +9,7 @@ @c %**end of header @copying This manual is for GNU Gzip @@ -10,8 +10,8 @@ Index: gzip-1.6/doc/gzip.texi +(version @value{VERSION}), and documents commands for compressing and decompressing data. - Copyright @copyright{} 1998-1999, 2001-2002, 2006-2007, 2009-2013 Free Software -@@ -46,7 +46,6 @@ Free Documentation License''. + Copyright @copyright{} 1998-1999, 2001-2002, 2006-2007, 2009-2016 Free Software +@@ -47,7 +47,6 @@ Free Documentation License''. @title GNU gzip @subtitle The data compression program @subtitle for Gzip version @value{VERSION} diff --git a/tempfile.diff b/tempfile.diff deleted file mode 100644 index 913ba94..0000000 --- a/tempfile.diff +++ /dev/null @@ -1,26 +0,0 @@ -Index: znew.in -=================================================================== ---- znew.in.orig -+++ znew.in -@@ -59,8 +59,9 @@ block=1024 - # block is the disk block size (best guess, need not be exact) - - warn="(does not preserve modes and timestamp)" --tmp=${TMPDIR-/tmp}/zfoo.$$ --set -C -+dtmp=`mktemp -d -t znew.XXXXXXXX` || exit -+trap 'rm -rf $dtmp' HUP INT PIPE TERM 0 -+tmp=$dtmp/znew - echo hi > $tmp || exit - if test -z "`(${CPMOD-cpmod} $tmp $tmp) 2>&1`"; then - cpmod=${CPMOD-cpmod} -@@ -76,7 +77,8 @@ fi - # check if GZIP env. variable uses -S or --suffix - gzip -q $tmp - ext=`echo $tmp* | sed "s|$tmp||"` --rm -f $tmp* -+rm -f $dtmp -+trap - HUP INT PIPE TERM 0 - if test -z "$ext"; then - echo znew: error determining gzip extension - exit 1