From 39397c85d3d7240677128080cb8761ae3ca0bc53 Mon Sep 17 00:00:00 2001 From: Ivana Varekova Date: Mon, 15 Jan 2007 16:42:27 +0000 Subject: [PATCH] - rebuild to 1.3.9 - spec cleanup --- .cvsignore | 2 +- gzip-1.3.9-addsuffix.patch | 21 +++ gzip-1.3.9-cve-2006-4337.patch | 117 +++++++++++++ gzip-1.3.9-openbsd-owl-tmp.patch | 67 ++++++++ gzip-1.3.9-rsync.patch | 275 +++++++++++++++++++++++++++++++ gzip-1.3.9-stderr.patch | 44 +++++ gzip.spec | 38 ++--- sources | 2 +- 8 files changed, 544 insertions(+), 22 deletions(-) create mode 100644 gzip-1.3.9-addsuffix.patch create mode 100644 gzip-1.3.9-cve-2006-4337.patch create mode 100644 gzip-1.3.9-openbsd-owl-tmp.patch create mode 100644 gzip-1.3.9-rsync.patch create mode 100644 gzip-1.3.9-stderr.patch diff --git a/.cvsignore b/.cvsignore index 8bd8d41..8fed926 100644 --- a/.cvsignore +++ b/.cvsignore @@ -1 +1 @@ -gzip-1.3.5.tar.gz +gzip-1.3.9.tar.gz diff --git a/gzip-1.3.9-addsuffix.patch b/gzip-1.3.9-addsuffix.patch new file mode 100644 index 0000000..81dda1e --- /dev/null +++ b/gzip-1.3.9-addsuffix.patch @@ -0,0 +1,21 @@ +--- gzip-1.3.9/zmore.in.pom 2007-01-15 15:31:26.000000000 +0100 ++++ gzip-1.3.9/zmore.in 2007-01-15 15:34:06.000000000 +0100 +@@ -66,7 +66,7 @@ + --v*) exec echo "$version";; + esac + +- < "$FILE" || continue ++ if test -e $FILE || test -e $FILE.gz; then + if test $FIRST -eq 0; then + echo $n1 "--More--(Next file: $FILE)$n2" + stty $cb -echo 2>/dev/null +@@ -83,6 +83,8 @@ + fi + if test -t 1; then + FIRST=0 +- fi ++ fi ++ else < $FILE ++ fi + done + fi diff --git a/gzip-1.3.9-cve-2006-4337.patch b/gzip-1.3.9-cve-2006-4337.patch new file mode 100644 index 0000000..3ba505d --- /dev/null +++ b/gzip-1.3.9-cve-2006-4337.patch @@ -0,0 +1,117 @@ +--- gzip-1.3.9/unlzh.c.4337 2007-01-15 16:31:53.000000000 +0100 ++++ gzip-1.3.9/unlzh.c 2007-01-15 16:38:08.000000000 +0100 +@@ -154,8 +154,8 @@ + start[1] = 0; + for (i = 1; i <= 16; i++) + start[i + 1] = start[i] + (count[i] << (16 - i)); +- if ((start[17] & 0xffff) != 0) +- gzip_error ("Bad table\n"); ++ if ((start[17] & 0xffff) != 0 || tablebits > 16) /* 16 for weight below */ ++ error("Bad table (case b)\n"); + + jutbits = 16 - tablebits; + for (i = 1; i <= (unsigned)tablebits; i++) { +@@ -169,15 +169,15 @@ + + i = start[tablebits + 1] >> jutbits; + if (i != 0) { +- k = 1 << tablebits; +- while (i != k) table[i++] = 0; ++ k = MIN(1 << tablebits, DIST_BUFSIZE); ++ while (i < k) table[i++] = 0; + } + + avail = nchar; + mask = (unsigned) 1 << (15 - tablebits); + for (ch = 0; ch < (unsigned)nchar; ch++) { + if ((len = bitlen[ch]) == 0) continue; +- nextcode = start[len] + weight[len]; ++ nextcode = MIN(start[len] + weight[len], DIST_BUFSIZE); + if (len <= (unsigned)tablebits) { + if ((unsigned) 1 << tablebits < nextcode) + gzip_error ("Bad table\n"); +@@ -220,7 +220,7 @@ + for (i = 0; i < 256; i++) pt_table[i] = c; + } else { + i = 0; +- while (i < n) { ++ while (i < MIN(n,NPT)) { + c = bitbuf >> (BITBUFSIZ - 3); + if (c == 7) { + mask = (unsigned) 1 << (BITBUFSIZ - 1 - 3); +@@ -232,7 +232,7 @@ + pt_len[i++] = c; + if (i == i_special) { + c = getbits(2); +- while (--c >= 0) pt_len[i++] = 0; ++ while (--c >= 0 && i < NPT) pt_len[i++] = 0; + } + } + while (i < nn) pt_len[i++] = 0; +@@ -252,7 +252,7 @@ + for (i = 0; i < 4096; i++) c_table[i] = c; + } else { + i = 0; +- while (i < n) { ++ while (i < MIN(n,NC)) { + c = pt_table[bitbuf >> (BITBUFSIZ - 8)]; + if (c >= NT) { + mask = (unsigned) 1 << (BITBUFSIZ - 1 - 8); +@@ -267,7 +267,7 @@ + if (c == 0) c = 1; + else if (c == 1) c = getbits(4) + 3; + else c = getbits(CBIT) + 20; +- while (--c >= 0) c_len[i++] = 0; ++ while (--c >= 0 && i < NC) c_len[i++] = 0; + } else c_len[i++] = c - 2; + } + while (i < NC) c_len[i++] = 0; +@@ -360,7 +360,7 @@ + while (--j >= 0) { + buffer[r] = buffer[i]; + i = (i + 1) & (DICSIZ - 1); +- if (++r == count) return r; ++ if (++r >= count) return r; + } + for ( ; ; ) { + c = decode_c(); +@@ -370,14 +370,14 @@ + } + if (c <= UCHAR_MAX) { + buffer[r] = c; +- if (++r == count) return r; ++ if (++r >= count) return r; + } else { + j = c - (UCHAR_MAX + 1 - THRESHOLD); + i = (r - decode_p() - 1) & (DICSIZ - 1); + while (--j >= 0) { + buffer[r] = buffer[i]; + i = (i + 1) & (DICSIZ - 1); +- if (++r == count) return r; ++ if (++r >= count) return r; + } + } + } +--- gzip-1.3.9/gzip.h.4337 2007-01-15 16:31:53.000000000 +0100 ++++ gzip-1.3.9/gzip.h 2007-01-15 16:38:52.000000000 +0100 +@@ -224,6 +224,8 @@ + #define get_byte() (inptr < insize ? inbuf[inptr++] : fill_inbuf(0)) + #define try_byte() (inptr < insize ? inbuf[inptr++] : fill_inbuf(1)) + ++#define MIN(a,b) ((a) <= (b) ? (a) : (b)) ++ + /* put_byte is used for the compressed output, put_ubyte for the + * uncompressed output. However unlzw() uses window for its + * suffix table instead of its output buffer, so it does not use put_ubyte +--- gzip-1.3.9/unpack.c.4337 2007-01-15 16:31:53.000000000 +0100 ++++ gzip-1.3.9/unpack.c 2007-01-15 16:39:12.000000000 +0100 +@@ -26,9 +26,6 @@ + #include "gzip.h" + #include "crypt.h" + +-#define MIN(a,b) ((a) <= (b) ? (a) : (b)) +-/* The arguments must not have side effects. */ +- + #define MAX_BITLEN 25 + /* Maximum length of Huffman codes. (Minor modifications to the code + * would be needed to support 32 bits codes, but pack never generates diff --git a/gzip-1.3.9-openbsd-owl-tmp.patch b/gzip-1.3.9-openbsd-owl-tmp.patch new file mode 100644 index 0000000..ea5920f --- /dev/null +++ b/gzip-1.3.9-openbsd-owl-tmp.patch @@ -0,0 +1,67 @@ +--- gzip-1.3.9/znew.in.owl-tmp 2006-12-09 05:25:56.000000000 +0100 ++++ gzip-1.3.9/znew.in 2007-01-15 11:40:51.000000000 +0100 +@@ -55,28 +55,27 @@ + # block is the disk block size (best guess, need not be exact) + + warn="(does not preserve modes and timestamp)" +-tmp=/tmp/zfoo.$$ +-set -C +-echo hi > $tmp || exit +-if test -z "`(${CPMOD-cpmod} $tmp $tmp) 2>&1`"; then +- cpmod=${CPMOD-cpmod} ++cpmod= ++cpmodarg= ++if type ${CPMOD:-cpmod} 2>/dev/null; then ++ cpmod=${CPMOD:-cpmod} + warn="" + fi + +-if test -z "$cpmod" && ${TOUCH-touch} -r $tmp $tmp 2>/dev/null; then +- cpmod="${TOUCH-touch}" ++if test -z "$cpmod"; then ++ cpmod=touch + cpmodarg="-r" + warn="(does not preserve file modes)" + fi + +-# check if GZIP env. variable uses -S or --suffix +-gzip -q $tmp +-ext=`echo $tmp* | sed "s|$tmp||"` +-rm -f $tmp* +-if test -z "$ext"; then +- echo znew: error determining gzip extension +- exit 1 +-fi ++case "$GZIP" in ++ *-S*) ext=`echo "$GZIP" | sed 's/^.*-S[[:space:]]*\([^[:space:]]*\).*$/\1/'` ++ ;; ++ *-suffix*) ext=`echo "$GZIP" | sed 's/^.*--suffix=\([^[:space:]]*\).*$/\1/'` ++ ;; ++ *) ext='.gz' ++ ;; ++esac + if test "$ext" = ".Z"; then + echo znew: cannot use .Z as gzip extension. + exit 1 +--- gzip-1.3.9/zdiff.in.owl-tmp 2006-12-09 05:25:56.000000000 +0100 ++++ gzip-1.3.9/zdiff.in 2007-01-15 11:40:51.000000000 +0100 +@@ -58,13 +58,13 @@ + case "$2" in + *[-.]gz* | *[-.][zZ] | *.t[ga]z) + F=`echo "$2" | sed 's|.*/||;s|[-.][zZtga]*||'` +- set -C +- trap 'rm -f /tmp/"$F".$$; exit 2' HUP INT PIPE TERM 0 +- gzip -cdfq -- "$2" > /tmp/"$F".$$ || exit +- gzip -cdfq -- "$1" | $comp $OPTIONS - /tmp/"$F".$$ ++ TF=`/bin/mktemp ${TMPDIR:-/tmp}/"$F".XXXXXXXXXX` || exit 1 ++ trap 'rm -f "$TF"; exit 2' EXIT HUP INT PIPE TERM ++ gzip -cdfq -- "$2" > "$TF" || exit ++ gzip -cdfq -- "$1" | $comp $OPTIONS - "$TF" + STAT="$?" +- /bin/rm -f /tmp/"$F".$$ || STAT=2 +- trap - HUP INT PIPE TERM 0 ++ rm -f "$TF" || STAT=2 ++ trap - EXIT HUP INT PIPE TERM + exit $STAT;; + + *) gzip -cdfq -- "$1" | $comp $OPTIONS - "$2";; diff --git a/gzip-1.3.9-rsync.patch b/gzip-1.3.9-rsync.patch new file mode 100644 index 0000000..dacee35 --- /dev/null +++ b/gzip-1.3.9-rsync.patch @@ -0,0 +1,275 @@ +--- gzip-1.3.9/gzip.c.pom 2007-01-15 14:32:26.000000000 +0100 ++++ gzip-1.3.9/gzip.c 2007-01-15 14:54:08.000000000 +0100 +@@ -238,6 +238,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 */ + + struct option longopts[] = + { +@@ -267,6 +268,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 } + }; + +@@ -348,6 +350,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.", + "", +@@ -473,6 +476,9 @@ + recursive = 1; + #endif + break; ++ ++ case 'R': ++ rsync = 1; break; + case 'S': + #ifdef NO_MULTIPLE_DOTS + if (*optarg == '.') optarg++; +--- gzip-1.3.9/trees.c.pom 2006-11-20 09:40:33.000000000 +0100 ++++ gzip-1.3.9/trees.c 2007-01-15 14:58:42.000000000 +0100 +@@ -860,9 +860,10 @@ + * 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 */ +@@ -955,6 +956,10 @@ + 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; +--- gzip-1.3.9/deflate.c.pom 2006-12-08 00:53:00.000000000 +0100 ++++ gzip-1.3.9/deflate.c 2007-01-15 15:25:40.000000000 +0100 +@@ -135,6 +135,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. + */ +@@ -216,6 +224,8 @@ + unsigned near 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; +@@ -550,6 +564,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; + +@@ -577,13 +593,46 @@ + } + } + ++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 +@@ -594,7 +643,7 @@ + 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; +@@ -624,6 +673,7 @@ + + 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. + */ +@@ -652,9 +702,14 @@ + /* 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) { ++ rsync_chunk_end = 0xFFFFFFFFUL; ++ flush = 2; ++ } + if (flush) FLUSH_BLOCK(0), block_start = strstart; + + /* Make sure that we always have enough lookahead, except +@@ -728,6 +783,7 @@ + */ + lookahead -= prev_length-1; + prev_length -= 2; ++ RSYNC_ROLL(strstart, prev_length+1); + do { + strstart++; + INSERT_STRING(strstart, hash_head); +@@ -740,24 +796,40 @@ + 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--; + } +--- gzip-1.3.9/gzip.h.pom 2006-12-11 19:54:39.000000000 +0100 ++++ gzip-1.3.9/gzip.h 2007-01-15 14:47:01.000000000 +0100 +@@ -155,6 +155,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 */ +@@ -303,7 +304,7 @@ + /* in trees.c */ + void ct_init OF((ush *attr, int *method)); + int ct_tally OF((int dist, int lc)); +-off_t flush_block OF((char *buf, ulg stored_len, int eof)); ++off_t flush_block OF((char *buf, ulg stored_len, int pad, int eof)); + + /* in bits.c */ + void bi_init OF((file_t zipfile)); +--- gzip-1.3.9/doc/gzip.texi.pom 2006-12-08 19:45:37.000000000 +0100 ++++ gzip-1.3.9/doc/gzip.texi 2007-01-15 15:30:00.000000000 +0100 +@@ -334,6 +334,14 @@ + into the directory and compress all the files it finds there (or + decompress them in the case of @code{gunzip}). + ++@item --rsyncable ++While compressing, synchronize the output occasionally based on the ++input. This reduces compression by about 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 @samp{@var{suf}} instead of @samp{.gz}. Any suffix can be diff --git a/gzip-1.3.9-stderr.patch b/gzip-1.3.9-stderr.patch new file mode 100644 index 0000000..a67af58 --- /dev/null +++ b/gzip-1.3.9-stderr.patch @@ -0,0 +1,44 @@ +--- gzip-1.3.9/znew.in.stderr 2007-01-15 14:23:54.000000000 +0100 ++++ gzip-1.3.9/znew.in 2007-01-15 14:25:37.000000000 +0100 +@@ -92,7 +92,7 @@ + done + + if test $# -eq 0; then +- echo "$usage" ++ echo "$usage" >&2 + exit 1 + fi + +--- gzip-1.3.9/zgrep.in.stderr 2006-12-09 05:25:56.000000000 +0100 ++++ gzip-1.3.9/zgrep.in 2007-01-15 14:23:54.000000000 +0100 +@@ -96,7 +96,7 @@ + done + + if test -z "$pat"; then +- echo "$usage" ++ echo "$usage" >&2 + exit 2 + fi + +--- gzip-1.3.9/zforce.in.stderr 2007-01-15 14:23:54.000000000 +0100 ++++ gzip-1.3.9/zforce.in 2007-01-15 14:23:54.000000000 +0100 +@@ -40,7 +40,7 @@ + Report bugs to ." + + if test $# = 0; then +- echo "$usage" ++ echo "$usage" >&2 + exit 1 + fi + +--- gzip-1.3.9/zmore.in.stderr 2006-12-09 05:25:56.000000000 +0100 ++++ gzip-1.3.9/zmore.in 2007-01-15 14:23:54.000000000 +0100 +@@ -53,7 +53,7 @@ + + if test $# = 0; then + if test -t 0; then +- echo "$usage" ++ echo "$usage" >&2 + else + gzip -cdfq | eval ${PAGER-more} + fi diff --git a/gzip.spec b/gzip.spec index 6b20518..ab50cf4 100644 --- a/gzip.spec +++ b/gzip.spec @@ -1,28 +1,25 @@ -Summary: The GNU data compression program. +Summary: The GNU data compression program Name: gzip -Version: 1.3.5 -Release: 11%{?dist} +Version: 1.3.9 +Release: 1%{?dist} License: GPL Group: Applications/File Source: ftp://alpha.gnu.org/gnu/gzip/gzip-%{version}.tar.gz -Patch0: gzip-1.3.5-openbsd-owl-tmp.patch +Patch0: gzip-1.3.9-openbsd-owl-tmp.patch Patch1: gzip-1.3.5-zforce.patch -Patch3: gzip-1.3.5-stderr.patch -Patch4: gzip-1.3.1-zgreppipe.patch -Patch5: gzip-1.3-rsync.patch +Patch3: gzip-1.3.9-stderr.patch +Patch4: gzip-1.3.9-zgreppipe.patch +Patch5: gzip-1.3.9-rsync.patch Patch6: gzip-1.3.3-window-size.patch -Patch7: gzip-1.3.3-addsuffix.patch -Patch8: gzip-1.3.5-zgrep-sed.patch -Patch9: gzip-1.3.5-gzip-perm.patch -Patch10: gzip-1.3.5-gunzip-dir.patch -Patch11: gzip-1.3.5-cve-2006-4334.patch +Patch7: gzip-1.3.9-addsuffix.patch Patch12: gzip-1.3.5-cve-2006-4335.patch Patch13: gzip-1.3.5-cve-2006-4336.patch Patch14: gzip-1.3.5-cve-2006-4338.patch -Patch15: gzip-1.3.5-cve-2006-4337.patch +Patch15: gzip-1.3.9-cve-2006-4337.patch Patch16: gzip-1.3.5-cve-2006-4337_len.patch +Patch17: gzip-1.3.9-zdiff_arg.patch URL: http://www.gzip.org/ -Prereq: /sbin/install-info +Requires: /sbin/install-info Requires: mktemp less BuildRequires: texinfo Buildroot: %{_tmppath}/gzip-%{version}-root @@ -43,15 +40,12 @@ very commonly used data compression program. %patch5 -p1 -b .rsync %patch6 -p1 -b .window-size %patch7 -p1 -b .addsuffix -%patch8 -p0 -b .sed -%patch9 -p1 -b .perm -%patch10 -p1 -b .dir -%patch11 -p1 -b .4334 %patch12 -p1 -b .4335 %patch13 -p1 -b .4336 %patch14 -p1 -b .4338 %patch15 -p1 -b .4337 %patch16 -p1 -b .4337l +%patch17 -p1 -b .arg %build export DEFS="NO_ASM" @@ -59,7 +53,7 @@ export CPPFLAGS="-DHAVE_LSTAT" %configure --bindir=/bin make -make gzip.info +#make gzip.info %install rm -rf ${RPM_BUILD_ROOT} @@ -97,6 +91,10 @@ fi %{_infodir}/gzip.info* %changelog +* Mon Jan 15 2006 Ivana Varekova 1.3.9-1 +- rebuild to 1.3.9 +- spec cleanup + * Wed Nov 22 2006 Ivana Varekova - 1.3.5-11 - fix too strict uncompress function @@ -213,7 +211,7 @@ fi * Sat Nov 17 2001 Florian La Roche - update to 1.3.1: - - disable patch2 +- disable patch2 * Fri Oct 26 2001 Trond Eivind Glomsrød 1.3.0-16 - replace tempfile patches with improved ones solar@openwall.com diff --git a/sources b/sources index 9d511fc..692eb67 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -3d6c191dfd2bf307014b421c12dc8469 gzip-1.3.5.tar.gz +7cf923b24b718c418e85a283b2260e14 gzip-1.3.9.tar.gz