bug-tar
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Bug-tar] --verify failure with 1.25


From: Paul Eggert
Subject: Re: [Bug-tar] --verify failure with 1.25
Date: Mon, 15 Nov 2010 00:13:08 -0800
User-agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.2.12) Gecko/20101027 Thunderbird/3.1.6

On 11/14/2010 02:09 PM, Gilles Espinasse wrote:
> With 1.25 --verify always fail
> [chroot-i486] root:/tmp$ touch foo
> [chroot-i486] root:/tmp$ tar -cvf /tmp/foo.tar --verify foo; echo $?
> foo
> Verify foo
> foo: Mode differs
> foo: Mod time differs
> 1

Thanks very much for reporting that.  Please try the following
fix, which I've pushed.  Sergey, could you please review this
as well?  Thanks.


>From a879cf48fc8a853c81f891d1ca3a2281c3bb76e8 Mon Sep 17 00:00:00 2001
From: Paul Eggert <address@hidden>
Date: Mon, 15 Nov 2010 00:07:53 -0800
Subject: [PATCH] tar: fix --verify option, which broke in 1.24

* NEWS: Document this.
* src/compare.c (verify_volume): Decode the header before invoking
diff_archive, as diff_archive no longer does this as of the
2010-06-28 commit.  Also, don't try to invoke diff_archive on a
zero block.
* tests/Makefile.am (TESTSUITE_AT): Add verify.at.
* tests/testsuite.at: Include verify.at.
* tests/verify.at: New file.
---
 NEWS               |   10 ++++++++--
 src/compare.c      |    2 ++
 tests/Makefile.am  |    1 +
 tests/testsuite.at |    2 ++
 tests/verify.at    |   37 +++++++++++++++++++++++++++++++++++++
 5 files changed, 50 insertions(+), 2 deletions(-)
 create mode 100644 tests/verify.at

diff --git a/NEWS b/NEWS
index 8244bad..e8829a4 100644
--- a/NEWS
+++ b/NEWS
@@ -1,7 +1,13 @@
-GNU tar NEWS - User visible changes. 2010-11-07
+GNU tar NEWS - User visible changes. 2010-11-14
 Please send GNU tar bug reports to <address@hidden>
 
 
+version 1.25.90 - (Git)
+
+* Bugfixes
+** Fix the --verify option, which broke in version 1.24.
+
+
 version 1.25 - Sergey Poznyakoff, 2010-11-07
 
 * Fix extraction of empty directories with the -C option in effect.
@@ -27,7 +33,7 @@ are met, tar retries extraction using an alternative 
decompressor:
  2. The compression program was not explicitly requested in the command
  line by the use of such options as -z, -j, etc.
 
-For example, if `compress' is not available, tar will try `gzip'. 
+For example, if `compress' is not available, tar will try `gzip'.
 
 
 version 1.24 - Sergey Poznyakoff, 2010-10-24
diff --git a/src/compare.c b/src/compare.c
index 6b7e6d8..f3112c6 100644
--- a/src/compare.c
+++ b/src/compare.c
@@ -611,8 +611,10 @@ verify_volume (void)
                       (0, 0, _("A lone zero block at %s"),
                        STRINGIFY_BIGINT (current_block_ordinal (), buf)));
             }
+         continue;
        }
 
+      decode_header (current_header, &current_stat_info, &current_format, 1);
       diff_archive ();
       tar_stat_destroy (&current_stat_info);
     }
diff --git a/tests/Makefile.am b/tests/Makefile.am
index 3a50949..71761cf 100644
--- a/tests/Makefile.am
+++ b/tests/Makefile.am
@@ -158,6 +158,7 @@ TESTSUITE_AT = \
  volsize.at\
  volume.at\
  verbose.at\
+ verify.at\
  version.at\
  xform-h.at\
  xform01.at\
diff --git a/tests/testsuite.at b/tests/testsuite.at
index bbb8369..122905c 100644
--- a/tests/testsuite.at
+++ b/tests/testsuite.at
@@ -233,6 +233,8 @@ m4_include([update.at])
 m4_include([update01.at])
 m4_include([update02.at])
 
+m4_include([verify.at])
+
 m4_include([volume.at])
 m4_include([volsize.at])
 
diff --git a/tests/verify.at b/tests/verify.at
new file mode 100644
index 0000000..98ba22b
--- /dev/null
+++ b/tests/verify.at
@@ -0,0 +1,37 @@
+# Process this file with autom4te to create testsuite. -*- Autotest -*-
+
+# Test suite for GNU tar.
+# Copyright (C) 2010 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
+# 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.
+
+# Check that tar --verify works.
+# Problem reported by Gilles Espinasse in
+# <http://lists.gnu.org/archive/html/bug-tar/2010-11/msg00065.html>.
+
+AT_SETUP([verify])
+AT_KEYWORDS([verify])
+
+AT_TAR_CHECK([
+touch foo
+tar -cvf archive.tar --verify foo
+],
+[0],
+[foo
+Verify foo
+])
+
+AT_CLEANUP
-- 
1.7.2




reply via email to

[Prev in Thread] Current Thread [Next in Thread]