diff --git a/.cvsignore b/.cvsignore index cce6c3b..e7ce9da 100644 --- a/.cvsignore +++ b/.cvsignore @@ -1,2 +1,2 @@ -tar-1.20.tar.gz -tar-1.20.tar.gz.sig +tar-1.21.tar.gz +tar-1.21.tar.gz.sig diff --git a/sources b/sources index 36ed667..4bc722a 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -c1a4ff43157ac60dd4b96dab09a3197c tar-1.20.tar.gz -0c5eaacc1805750d2701bda133c6f654 tar-1.20.tar.gz.sig +e7ae56b3bf924d5108b57b544b247c50 tar-1.21.tar.gz +cceab48ed4cdd0c5e2de825e59797820 tar-1.21.tar.gz.sig diff --git a/tar-1.19-null-terminator.patch b/tar-1.19-null-terminator.patch deleted file mode 100644 index 50e7a67..0000000 --- a/tar-1.19-null-terminator.patch +++ /dev/null @@ -1,23 +0,0 @@ -diff -urNp tar-1.20-orig/src/names.c tar-1.20/src/names.c ---- tar-1.20-orig/src/names.c 2008-09-24 10:53:41.000000000 +0200 -+++ tar-1.20/src/names.c 2008-09-24 10:57:28.000000000 +0200 -@@ -289,8 +289,7 @@ static int matching_flags; /* exclude_fn - static storage and can't be relied upon across two calls. - - If CHANGE_DIRS is true, treat any entries of type NELT_CHDIR as -- the request to change to the given directory. If filename_terminator -- is NUL, CHANGE_DIRS is effectively always false. -+ the request to change to the given directory. - - Entries of type NELT_FMASK cause updates of the matching_flags - value. */ -@@ -301,9 +300,6 @@ name_next_elt (int change_dirs) - const char *source; - char *cursor; - -- if (filename_terminator == '\0') -- change_dirs = 0; -- - while (name_index != names) - { - struct name_elt *ep; diff --git a/tar-1.21-testsuite.patch b/tar-1.21-testsuite.patch new file mode 100644 index 0000000..9f4a83b --- /dev/null +++ b/tar-1.21-testsuite.patch @@ -0,0 +1,246 @@ +From: Sergey Poznyakoff +Date: Mon, 29 Dec 2008 09:27:00 +0000 (+0000) +Subject: Fix testsuite and bootstrap. Implement -I. +X-Git-Url: http://git.savannah.gnu.org/gitweb/?p=tar.git;a=commitdiff_plain;h=7b68ef3d918603f3afb03e939ba72f5cad10edf4;hp=970f999818a52a107a89697666c54397403c09be + +Fix testsuite. Implement -I. + +* src/tar.c: Implement -I as a shorthand for --use-compress-program. +* doc/tar.texi: Document -I. +* tests/pipe.at, tests/shortrec.at: Account for eventual 'Record +size' output. +* tests/testsuite.at (AT_TAR_CHECK_HOOK): New define +(AT_TAR_WITH_HOOK, TAR_IGNREC_HOOK): New macros. +--- + +diff --git a/ChangeLog b/ChangeLog +index 7dd05f8..68fe50a 100644 +--- a/ChangeLog ++++ b/ChangeLog +@@ -1,3 +1,12 @@ ++2008-12-29 Sergey Poznyakoff ++ ++ * src/tar.c: Implement -I as a shorthand for --use-compress-program. ++ * doc/tar.texi: Document -I. ++ * tests/pipe.at, tests/shortrec.at: Account for eventual 'Record ++ size' output. ++ * tests/testsuite.at (AT_TAR_CHECK_HOOK): New define ++ (AT_TAR_WITH_HOOK, TAR_IGNREC_HOOK): New macros. ++ + 2008-11-30 Sergey Poznyakoff + + * src/xheader.c: Remove duplicate inclusion of fnmatch.h. Reported +diff --git a/doc/tar.texi b/doc/tar.texi +index cb8bd19..210639e 100644 +--- a/doc/tar.texi ++++ b/doc/tar.texi +@@ -3309,6 +3309,7 @@ name quoting}. + + @opsummary{use-compress-program} + @item --use-compress-program=@var{prog} ++@itemx -I=@var{prog} + + Instructs @command{tar} to access the archive through @var{prog}, which is + presumed to be a compression program of some sort. @xref{gzip}. +@@ -8570,6 +8571,7 @@ Filter the archive through @command{compress}. Otherwise like @option{--gzip}. + + @opindex use-compress-program + @item --use-compress-program=@var{prog} ++@itemx -I=@var{prog} + Use external compression program @var{prog}. Use this option if you + have a compression program that @GNUTAR{} does not support. There + are two requirements to which @var{prog} should comply: +@@ -8608,14 +8610,14 @@ Suppose you name it @file{gpgz} and save it somewhere in your + archive signed with your private key: + + @smallexample +-$ @kbd{tar -cf foo.tar.gpgz --use-compress=gpgz .} ++$ @kbd{tar -cf foo.tar.gpgz -Igpgz .} + @end smallexample + + @noindent +-Likewise, the following command will list its contents: ++Likewise, the command below will list its contents: + + @smallexample +-$ @kbd{tar -tf foo.tar.gpgz --use-compress=gpgz .} ++$ @kbd{tar -tf foo.tar.gpgz -Igpgz .} + @end smallexample + + @ignore +diff --git a/src/tar.c b/src/tar.c +index ae0c739..8396ad5 100644 +--- a/src/tar.c ++++ b/src/tar.c +@@ -323,7 +323,6 @@ enum + TRANSFORM_OPTION, + UNQUOTE_OPTION, + USAGE_OPTION, +- USE_COMPRESS_PROGRAM_OPTION, + UTC_OPTION, + VERSION_OPTION, + VOLNO_FILE_OPTION, +@@ -352,7 +351,7 @@ The version control may be set with --backup or VERSION_CONTROL, values are:\n\n + + /* NOTE: + +- Available option letters are DEIQY and eqy. Consider the following ++ Available option letters are DEQY and eqy. Consider the following + assignments: + + [For Solaris tar compatibility =/= Is it important at all?] +@@ -360,7 +359,6 @@ The version control may be set with --backup or VERSION_CONTROL, values are:\n\n + E use extended headers (--format=posix) + + [q alias for --occurrence=1 =/= this would better be used for quiet?] +- [I same as T =/= will harm star compatibility] + + y per-file gzip compression + Y per-block gzip compression */ +@@ -610,7 +608,7 @@ static struct argp_option options[] = { + N_("filter the archive through lzma"), GRID+1 }, + {"lzop", LZOP_OPTION, 0, 0, + N_("filter the archive through lzop"), GRID+8 }, +- {"use-compress-program", USE_COMPRESS_PROGRAM_OPTION, N_("PROG"), 0, ++ {"use-compress-program", 'I', N_("PROG"), 0, + N_("filter through PROG (must accept -d)"), GRID+1 }, + #undef GRID + +@@ -1364,12 +1362,6 @@ parse_opt (int key, char *arg, struct argp_state *state) + ignore_zeros_option = true; + break; + +- case 'I': +- USAGE_ERROR ((0, 0, +- _("Warning: the -I option is not supported;" +- " perhaps you meant -j or -T?"))); +- break; +- + case 'j': + set_use_compress_program_option ("bzip2"); + break; +@@ -1905,7 +1897,7 @@ parse_opt (int key, char *arg, struct argp_state *state) + set_transform_expr (arg); + break; + +- case USE_COMPRESS_PROGRAM_OPTION: ++ case 'I': + set_use_compress_program_option (arg); + break; + +diff --git a/tests/pipe.at b/tests/pipe.at +index efca65b..be99212 100644 +--- a/tests/pipe.at ++++ b/tests/pipe.at +@@ -1,7 +1,7 @@ + # Process this file with autom4te to create testsuite. -*- Autotest -*- + + # Test suite for GNU tar. +-# Copyright (C) 2004, 2005, 2006, 2007 Free Software Foundation, Inc. ++# Copyright (C) 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. + + # 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 +@@ -30,7 +30,8 @@ AT_SETUP([decompressing from stdin]) + + AT_KEYWORDS([pipe]) + +-AT_TAR_CHECK([ ++AT_TAR_WITH_HOOK([TAR_IGNREC_HOOK], ++[AT_TAR_CHECK([ + AT_SORT_PREREQ + + mkdir directory +@@ -49,6 +50,7 @@ directory/file1 + directory/file2 + separator + separator +-]) ++], ++[stderr])]) + + AT_CLEANUP +diff --git a/tests/shortrec.at b/tests/shortrec.at +index 3e009fd..179f365 100644 +--- a/tests/shortrec.at ++++ b/tests/shortrec.at +@@ -1,7 +1,7 @@ + # Process this file with autom4te to create testsuite. -*- Autotest -*- + + # Test suite for GNU tar. +-# Copyright (C) 2005, 2007 Free Software Foundation, Inc. ++# Copyright (C) 2005, 2007, 2008 Free Software Foundation, Inc. + + # 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 +@@ -23,17 +23,22 @@ + # used to create the archive. + + AT_SETUP([short records]) +-AT_KEYWORDS([shortrec.at]) ++AT_KEYWORDS([shortrec]) + +-AT_TAR_CHECK([ ++AT_TAR_WITH_HOOK([TAR_IGNREC_HOOK], ++[AT_TAR_CHECK([ + mkdir directory + (cd directory && touch a b c d e f g h i j k l m n o p q r) +-tar -c -b 1 -f - directory | tar -t -f - >/dev/null ++tar -c -b 1 -f - directory | tar -t -f - + tar -c -b 1 -f archive directory +-tar -t -f archive >/dev/null +-tar -t -f - < archive >/dev/null ++tar -t -f archive ++tar -t -f - < archive + + rm -r directory ++], ++[0], ++[ignore], ++[stderr]) + ]) + + AT_CLEANUP +diff --git a/tests/testsuite.at b/tests/testsuite.at +index 2fa5392..a12477d 100644 +--- a/tests/testsuite.at ++++ b/tests/testsuite.at +@@ -1,7 +1,7 @@ + # Process this file with autom4te to create testsuite. -*- Autotest -*- + + # Test suite for GNU tar. +-# Copyright (C) 2004, 2005, 2006, 2007 Free Software Foundation, Inc. ++# Copyright (C) 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. + + # 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 +@@ -21,6 +21,7 @@ + # We need a recent Autotest. + m4_version_prereq([2.52g]) + ++m4_define([AT_TAR_CHECK_HOOK]) + m4_define([AT_TAR_CHECK],[ + AT_XFAIL_IF(test -f $[]XFAILFILE) + m4_foreach([FMT], +@@ -33,9 +34,20 @@ export TEST_TAR_FORMAT + TAR_OPTIONS="-H FMT" + export TAR_OPTIONS + rm -rf * +-$1)],$2,$3,$4,$5,$6)]) ++$1)],$2,$3,$4,$5,$6) ++ AT_TAR_CHECK_HOOK]) + ]) + ++m4_define([AT_TAR_WITH_HOOK],[ ++ m4_pushdef([AT_TAR_CHECK_HOOK],[$1]) ++ $2 ++ ++ m4_popdef([AT_TAR_CHECK_HOOK])]) ++ ++m4_define([TAR_IGNREC_HOOK],[ ++ AT_CHECK([grep -v '^.*tar: Record size = ' stderr; exit 0]) ++]) ++ + m4_define([RE_CHECK],[ + AT_DATA([$1.re],[$2]) + awk '{print NR " " $[]0}' $1 > $[]$.1 diff --git a/tar.spec b/tar.spec index bca6dad..e3a9d44 100644 --- a/tar.spec +++ b/tar.spec @@ -1,8 +1,8 @@ Summary: A GNU file archiving program Name: tar Epoch: 2 -Version: 1.20 -Release: 6%{?dist} +Version: 1.21 +Release: 1%{?dist} License: GPLv3+ Group: Applications/Archiving URL: http://www.gnu.org/software/tar/ @@ -14,8 +14,7 @@ Patch2: tar-1.15.1-vfatTruncate.patch Patch3: tar-1.19-xattrs.patch Patch4: tar-1.19-xattrs-conf.patch Patch5: tar-1.17-wildcards.patch -Patch6: tar-1.19-null-terminator.patch -Patch7: tar-1.16-multiVolLabels.patch +Patch6: tar-1.21-testsuite.patch Prereq: info BuildRequires: autoconf automake gzip texinfo gettext libacl-devel libselinux-devel gawk rsh Buildroot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) @@ -41,8 +40,7 @@ the rmt package. %patch3 -p1 -b .xattrs %patch4 -p1 -b .xattrs-conf %patch5 -p1 -b .wildcards -%patch6 -p1 -b .nullterm -%patch7 -p1 -b .multiVolLabels +%patch6 -p1 -b .testsuite %build %configure --bindir=/bin --libexecdir=/sbin @@ -93,6 +91,10 @@ fi %{_infodir}/tar.info* %changelog +* Mon Jan 05 2009 Ondrej Vasik 2:1.21-1 +- New upstream release 1.21, removed applied patches +- add support for -I option, fix testsuite failure + * Thu Dec 11 2008 Ondrej Vasik 2:1.20-6 - add BuildRequires for rsh (#475950)