Hello community, here is the log from the commit of package gzip checked in at Wed Dec 6 11:48:44 CET 2006. -------- --- gzip/gzip.changes 2006-09-13 11:26:29.000000000 +0200 +++ /mounts/work_src_done/STABLE/gzip/gzip.changes 2006-12-04 13:09:22.000000000 +0100 @@ -1,0 +2,18 @@ +Mon Dec 4 13:08:18 CET 2006 - schwab@suse.de + +- Update to gzip 1.3.6. + * Fix some race conditions in setting file time stamps, permissions, and owner. + * Fix some race conditions in signal handling. + * When gzip exits due to a signal, it exits with the signal's status, not 1. + * gzip now restores file time stamps to the resolution supported by the + time-setting primitives of the operating system, typically 1 microsecond. + Formerly it restored them only to the nearest second. + * gzip -r no longer attempts to reset the last-access times of directories + it reads, as this messes up when other processes are reading the directories. + * The options --version and --help now work on all gzip-installed executables, + and now use a format similar to other GNU programs. + * The manual is now distributed under the terms of the GNU Free + Documentation License without invariant sections or cover texts. + * Port to current versions of Autoconf, Automake, and Gnulib. + +------------------------------------------------------------------- Old: ---- gzip-1.3.5-codecleanup.patch gzip-1.3.5-tempfile.patch gzip-1.3.5-zmore.patch gzip-1.3.5.patch gzip-1.3.5.tar.bz2 traversal.diff ungzip.diff zgrep.patch New: ---- gzip-1.3.6.tar.gz tempfile.diff zgrep.diff zmore.diff ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ gzip.spec ++++++ --- /var/tmp/diff_new_pack.YfDJ1c/_old 2006-12-06 11:48:05.000000000 +0100 +++ /var/tmp/diff_new_pack.YfDJ1c/_new 2006-12-06 11:48:05.000000000 +0100 @@ -1,5 +1,5 @@ # -# spec file for package gzip (Version 1.3.5) +# spec file for package gzip (Version 1.3.6) # # Copyright (c) 2006 SUSE LINUX Products GmbH, Nuernberg, Germany. # This file and all modifications and additions to the pristine @@ -13,23 +13,19 @@ Name: gzip %define do_profiling 0 URL: http://www.gzip.org/ -License: GPL +License: GNU General Public License (GPL) Group: Productivity/Archiving/Compression Autoreqprov: on PreReq: %{install_info_prereq} -Version: 1.3.5 -Release: 163 +Version: 1.3.6 +Release: 1 Summary: GNU Zip Compression Utilities -Source: %{name}-%{version}.tar.bz2 -Patch: gzip-1.3.5.patch -Patch1: gzip-1.3.5-tempfile.patch -Patch2: gzip-1.3.5-codecleanup.patch -Patch3: zgrep.patch -Patch4: gzip-1.3.5-zmore.patch -Patch5: traversal.diff -Patch6: non-exec-stack.diff -Patch7: http://rsync.samba.org/ftp/unpacked/rsync/patches/gzip-rsyncable.diff -Patch8: ungzip.diff +Source: %{name}-%{version}.tar.gz +Patch: 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 BuildRoot: %{_tmppath}/%{name}-%{version}-build %description @@ -51,32 +47,27 @@ %patch1 %patch2 %patch3 -%patch4 -%patch5 -%patch6 -%patch7 -p1 -%patch8 +%patch4 -p1 %build -export CFLAGS="$RPM_OPT_FLAGS \ +CFLAGS="$RPM_OPT_FLAGS -fomit-frame-pointer \ %ifarch %{ix86} - -mcpu=pentiumpro \ +-mcpu=pentiumpro \ %endif --fomit-frame-pointer -fno-strength-reduce \ -W -Wall -Wno-unused-parameter -Wstrict-prototypes -Wpointer-arith" -./configure --prefix=%{_prefix} --infodir=%{_infodir} --mandir=%{_mandir} +./configure CFLAGS="$CFLAGS" \ + --prefix=%{_prefix} --infodir=%{_infodir} --mandir=%{_mandir} %if %{do_profiling} make CFLAGS="$CFLAGS -fprofile-arcs" for i in 1 2 3 4 5 6 7 8 9 do - time ./gzip -$i < texinfo.tex > texinfo.tex.gz - ./gzip --test texinfo.tex.gz - ./gzip -d < texinfo.tex.gz > texinfo.test$i - diff texinfo.tex texinfo.test$i - time ./gzip -$i < /bin/bash > bash.gz - ./gzip --test bash.gz - ./gzip -d < bash.gz > bash.test$i - cmp /bin/bash bash.test$i + for f in build-aux/texinfo.tex /bin/bash; do + basef=${f##*/} + time ./gzip -$i < $f > $basef.gz + ./gzip --test $basef.gz + ./gzip -d < $basef.gz > $basef.test$i + cmp $f $basef.test$i + done done make clean make CFLAGS="$CFLAGS -fbranch-probabilities" @@ -85,20 +76,16 @@ %endif for i in 1 2 3 4 5 6 7 8 9 do - time ./gzip -$i < texinfo.tex > texinfo.tex.gz - ./gzip --test texinfo.tex.gz - ./gzip -d < texinfo.tex.gz > texinfo.test$i - diff texinfo.tex texinfo.test$i - time ./gzip -$i < /bin/bash > bash.gz - ./gzip --test bash.gz - ./gzip -d < bash.gz > bash.test$i - cmp /bin/bash bash.test$i + for f in build-aux/texinfo.tex /bin/bash; do + basef=${f##*/} + time ./gzip -$i < $f > $basef.gz + ./gzip --test $basef.gz + ./gzip -d < $basef.gz > $basef.test$i + cmp $f $basef.test$i + done done -ls -l texinfo.test? -ls -l bash.test? %install -rm -rf $RPM_BUILD_ROOT make DESTDIR=$RPM_BUILD_ROOT install mkdir -p $RPM_BUILD_ROOT/bin mv $RPM_BUILD_ROOT/usr/bin/gzip $RPM_BUILD_ROOT/bin/ @@ -124,6 +111,21 @@ %install_info_delete --info-dir=%{_infodir} %{_infodir}/%{name}.info.gz %changelog -n gzip +* Mon Dec 04 2006 - schwab@suse.de +- Update to gzip 1.3.6. + * Fix some race conditions in setting file time stamps, permissions, and owner. + * Fix some race conditions in signal handling. + * When gzip exits due to a signal, it exits with the signal's status, not 1. + * gzip now restores file time stamps to the resolution supported by the + time-setting primitives of the operating system, typically 1 microsecond. + Formerly it restored them only to the nearest second. + * gzip -r no longer attempts to reset the last-access times of directories + it reads, as this messes up when other processes are reading the directories. + * The options --version and --help now work on all gzip-installed executables, + and now use a format similar to other GNU programs. + * The manual is now distributed under the terms of the GNU Free + Documentation License without invariant sections or cover texts. + * Port to current versions of Autoconf, Automake, and Gnulib. * Wed Sep 13 2006 - schwab@suse.de - Verify hash tables when unpacking [#202365]. * Mon Mar 13 2006 - schwab@suse.de @@ -152,13 +154,13 @@ - Make sure we have no hardlinks from /bin to /usr/bin [Bug #29522] * Tue Jun 17 2003 - pthomas@suse.de - Update to 1.3.5 -- gzip now removes any output symlink before writing output file. -- zgrep etc. scripts now port to POSIX 1003.1-2001 hosts. -- zforce no longer assumes 14-byte file name length limit. -- zless is now implemented using less and LESSOPEN, not zmore and PAGER. -- assembly-language speedups reenabled; were mistakenly disabled in 1.3. -- Less output is lost when decompressing a truncated file. -- zgrep now supports --, -H, -h, -L, -l, -C, -d, -m and their long + - gzip now removes any output symlink before writing output file. + - zgrep etc. scripts now port to POSIX 1003.1-2001 hosts. + - zforce no longer assumes 14-byte file name length limit. + - zless is now implemented using less and LESSOPEN, not zmore and PAGER. + - assembly-language speedups reenabled; were mistakenly disabled in 1.3. + - Less output is lost when decompressing a truncated file. + - zgrep now supports --, -H, -h, -L, -l, -C, -d, -m and their long equivalents. * Wed Jun 04 2003 - jh@suse.de - Enable profile feedback ++++++ gzip-rsyncable.diff ++++++ --- /var/tmp/diff_new_pack.YfDJ1c/_old 2006-12-06 11:48:05.000000000 +0100 +++ /var/tmp/diff_new_pack.YfDJ1c/_new 2006-12-06 11:48:05.000000000 +0100 @@ -4,9 +4,10 @@ tried out in the default gzip for Debian Sarge, and may go into the upstream gzip at somepoint in the not-too-distant future. ---- gzip-1.3.5/deflate.c 1999-10-07 23:46:28 -0700 -+++ rsyncable/deflate.c 2005-02-05 09:40:33 -0800 -@@ -122,6 +122,14 @@ +================================================================================ +--- gzip-1.3.6/deflate.c ++++ gzip-1.3.6/deflate.c +@@ -135,6 +135,14 @@ #endif /* Matches of length 3 are discarded if their distance exceeds TOO_FAR */ @@ -21,7 +22,7 @@ /* =========================================================================== * Local data used by the "longest match" routines. */ -@@ -203,6 +211,8 @@ +@@ -216,6 +224,8 @@ unsigned near good_match; /* Use a faster search when the previous match is longer than this */ @@ -30,7 +31,7 @@ /* 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 -@@ -301,6 +311,10 @@ +@@ -314,6 +324,10 @@ #endif /* prev will be initialized on the fly */ @@ -41,7 +42,7 @@ /* Set the default configuration parameters: */ max_lazy_match = configuration_table[pack_level].max_lazy; -@@ -537,6 +551,8 @@ +@@ -550,6 +564,8 @@ memcpy((char*)window, (char*)window+WSIZE, (unsigned)WSIZE); match_start -= WSIZE; strstart -= WSIZE; /* we now have strstart >= MAX_DIST: */ @@ -50,7 +51,7 @@ block_start -= (long) WSIZE; -@@ -564,13 +580,46 @@ +@@ -577,13 +593,46 @@ } } @@ -98,7 +99,7 @@ /* =========================================================================== * Processes a new input file and return its compressed length. This -@@ -581,7 +630,7 @@ +@@ -594,7 +643,7 @@ local off_t deflate_fast() { IPos hash_head; /* head of the hash chain */ @@ -107,7 +108,7 @@ unsigned match_length = 0; /* length of best match */ prev_length = MIN_MATCH-1; -@@ -610,6 +659,7 @@ +@@ -623,6 +672,7 @@ lookahead -= match_length; @@ -115,22 +116,22 @@ /* Insert new strings in the hash table only if the match length * is not too large. This saves time but degrades compression. */ -@@ -638,9 +688,14 @@ +@@ -651,9 +701,14 @@ /* No match, output a literal byte */ Tracevv((stderr,"%c",window[strstart])); flush = ct_tally (0, window[strstart]); -+ RSYNC_ROLL(strstart, 1); ++ RSYNC_ROLL(strstart, 1); lookahead--; - strstart++; + strstart++; } -+ if (rsync && strstart > rsync_chunk_end) { -+ rsync_chunk_end = 0xFFFFFFFFUL; -+ flush = 2; -+ } ++ 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 -@@ -713,6 +768,7 @@ +@@ -726,6 +781,7 @@ */ lookahead -= prev_length-1; prev_length -= 2; @@ -138,7 +139,7 @@ do { strstart++; INSERT_STRING(strstart, hash_head); -@@ -725,24 +781,39 @@ +@@ -738,24 +794,39 @@ match_available = 0; match_length = MIN_MATCH-1; strstart++; @@ -182,9 +183,26 @@ strstart++; lookahead--; } ---- gzip-1.3.5/gzip.c 2002-09-28 00:38:43 -0700 -+++ rsyncable/gzip.c 2005-02-05 09:40:33 -0800 -@@ -256,6 +256,7 @@ +--- gzip-1.3.6/doc/gzip.texi ++++ gzip-1.3.6/doc/gzip.texi +@@ -328,6 +328,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 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 @samp{@var{suf}} instead of @samp{.gz}. Any suffix can be +--- gzip-1.3.6/gzip.c ++++ gzip-1.3.6/gzip.c +@@ -218,6 +218,7 @@ unsigned insize; /* valid bytes in inbuf */ unsigned inptr; /* index of next byte to be processed in inbuf */ unsigned outcnt; /* bytes in output buffer */ @@ -192,7 +210,7 @@ struct option longopts[] = { -@@ -285,6 +286,7 @@ +@@ -247,6 +248,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) */ @@ -200,27 +218,9 @@ { 0, 0, 0, 0 } }; -@@ -365,6 +367,7 @@ - " -Z --lzw produce output compatible with old compress", - " -b --bits maxbits max number of bits per code (implies -Z)", - #endif -+ " --rsyncable Make rsync-friendly archive", - " file... files to (de)compress. If none given, use standard input.", - "Report bugs to <bug-gzip@gnu.org>.", - 0}; -@@ -543,6 +546,9 @@ - #else - recursive = 1; break; - #endif -+ case 'R': -+ rsync = 1; break; -+ - case 'S': - #ifdef NO_MULTIPLE_DOTS - if (*optarg == '.') optarg++; ---- gzip-1.3.5/gzip.h 2001-09-30 23:53:41 -0700 -+++ rsyncable/gzip.h 2005-02-05 09:40:33 -0800 -@@ -133,6 +133,7 @@ +--- gzip-1.3.6/gzip.h ++++ gzip-1.3.6/gzip.h +@@ -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 */ @@ -228,7 +228,7 @@ extern off_t bytes_in; /* number of input bytes */ extern off_t bytes_out; /* number of output bytes */ -@@ -281,7 +282,7 @@ +@@ -303,7 +304,7 @@ /* in trees.c */ void ct_init OF((ush *attr, int *method)); int ct_tally OF((int dist, int lc)); @@ -237,26 +237,9 @@ /* in bits.c */ void bi_init OF((file_t zipfile)); ---- gzip-1.3.5/gzip.texi 2002-09-29 23:57:29 -0700 -+++ rsyncable/gzip.texi 2005-02-05 09:40:33 -0800 -@@ -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 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 @samp{@var{suf}} instead of @samp{.gz}. Any suffix can be ---- gzip-1.3.5/trees.c 1999-10-05 22:00:00 -0700 -+++ rsyncable/trees.c 2005-02-05 09:40:33 -0800 -@@ -46,12 +46,13 @@ +--- gzip-1.3.6/trees.c ++++ gzip-1.3.6/trees.c +@@ -59,12 +59,13 @@ * void ct_tally (int dist, int lc); * Save the match info and tally the frequency counts. * @@ -274,7 +257,7 @@ #include <config.h> #include <ctype.h> -@@ -847,9 +848,10 @@ +@@ -860,9 +861,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. */ @@ -286,7 +269,7 @@ int eof; /* true if this is the last block for a file */ { ulg opt_lenb, static_lenb; /* opt_len and static_len in bytes */ -@@ -941,6 +943,10 @@ +@@ -955,6 +957,10 @@ Assert (input_len == bytes_in, "bad input size"); bi_windup(); compressed_len += 7; /* align on byte boundary */ ++++++ non-exec-stack.diff ++++++ --- /var/tmp/diff_new_pack.YfDJ1c/_old 2006-12-06 11:48:05.000000000 +0100 +++ /var/tmp/diff_new_pack.YfDJ1c/_new 2006-12-06 11:48:05.000000000 +0100 @@ -1,11 +1,7 @@ ---- match.c -+++ match.c -@@ -44,6 +44,8 @@ - */ - - .file "match.S" +--- lib/match.c ++++ lib/match.c +@@ -770,3 +770,4 @@ + # endif /* __ia64__ */ + #endif /* mc68000 || mc68020 */ + #endif /* i386 || _I386 */ + .section .note.GNU-stack,"",@progbits -+ .previous - - #define MAX_MATCH 258 - #define MAX_MATCH2 $128 /* MAX_MATCH/2-1 */ ++++++ tempfile.diff ++++++ --- gzexe.in +++ gzexe.in @@ -67,7 +67,10 @@ esac done -tmp=gz$$ +tmp=`mktemp /tmp/gz.XXXXXX` || { + echo 'cannot create temporary file' >&2 + exit 1 +} trap "rm -f $tmp; exit 1" 1 2 3 5 10 13 15 set -C @@ -137,6 +140,8 @@ umask 77 if (tempfile --version) >/dev/null 2>&1 then gztmp=`tempfile -p gztmp` || exit +elif (mktemp -V) >/dev/null 2>&1 +then gztmp=`mktemp -t gztmp.XXXXXXXX` || exit else gztmp=/tmp/gztmp$$ fi if tail +$skip "$0" | "BINDIR"/gzip -cd > "$gztmp"; then --- zdiff.in +++ zdiff.in @@ -59,12 +59,12 @@ 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 -t "$F".XXXXXXXX` || exit 1 + trap 'rm -f "$TF"; exit 2' HUP INT PIPE TERM 0 + gzip -cdfq -- "$2" > "$TF" || exit + gzip -cdfq -- "$1" | $comp $OPTIONS - "$TF" STAT="$?" - /bin/rm -f /tmp/"$F".$$ || STAT=2 + /bin/rm -f "$TF" || STAT=2 trap - HUP INT PIPE TERM 0 exit $STAT;; --- znew.in +++ znew.in @@ -56,8 +56,9 @@ # block is the disk block size (best guess, need not be exact) warn="(does not preserve modes and timestamp)" -tmp=/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} @@ -73,7 +74,8 @@ # 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 ++++++ zgrep.diff ++++++ --- zgrep.in +++ zgrep.in @@ -102,13 +102,36 @@ fi if test $# -eq 0; then - gzip -cdfq | $grep $opt "$pat" - exit $? + if type -p dd > /dev/null 2>&1 && + type -p mimencode > /dev/null 2>&1 && + type -p file > /dev/null 2>&1 + then + uncompress=gzip + x=`dd bs=20 count=1 2> /dev/null | mimencode -b` + case `echo -n $x | mimencode -u -b | file -b -` in + bzip2*) + uncompress=bzip2 + ;; + esac + (echo -n $x | mimencode -u -b; cat -) | $uncompress -cdfq | $grep $opt "$pat" + exit $? + else + gzip -cdfq | $grep $opt "$pat" + exit $? + fi fi res=0 for i do - gzip -cdfq -- "$i" | + case $i in + *.bz2) + uncompress=bzip2 + ;; + *) + uncompress=gzip + ;; + esac + $uncompress -cdfq "$i" | if test $files_with_matches -eq 1; then $grep $opt "$pat" > /dev/null && printf '%s\n' "$i" elif test $files_without_matches -eq 1; then @@ -116,6 +139,7 @@ elif test $with_filename -eq 0 && { test $# -eq 1 || test $no_filename -eq 1; }; then $grep $opt "$pat" else + i=`printf '%s\n' "$i" | sed 's/[\|&]/\\\\&/g'` if test $with_filename -eq 1; then sed_script="s|^[^:]*:|${i}:|" else ++++++ zmore.diff ++++++ --- zmore.in +++ zmore.in @@ -52,11 +52,33 @@ trap 'stty $ncb echo 2>/dev/null; exit' 0 2 3 5 10 13 15 fi +opt= +pager () +{ + eval ${PAGER-more} \$opt + cat > /dev/null +} + +while :; do + case $1 in + --) + shift + break + ;; + [-+]*) + opt="$opt $1" + shift + ;; + *) + break + ;; + esac +done if test $# = 0; then if test -t 0; then echo "$usage" else - gzip -cdfq | eval ${PAGER-more} + gzip -cdfq | pager fi else FIRST=1 @@ -80,7 +102,7 @@ fi if test "$ANS" != 's'; then echo "------> $FILE <------" - gzip -cdfq -- "$FILE" | eval ${PAGER-more} + gzip -cdfq -- "$FILE" | pager fi if test -t 1; then FIRST=0 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Remember to have fun... --------------------------------------------------------------------- To unsubscribe, e-mail: opensuse-commit+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-commit+help@opensuse.org
participants (1)
-
root@suse.de