This is the mail archive of the cygwin@cygwin.com mailing list for the Cygwin project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: New tar available for testing (was Re: here is a patch for gnutar incremental backup...)


On Sat, Nov 8, 2003 cgf wrote:

> Thanks for the patch but I don't think it is quite right and I don't
> think it catches everything.
>
> I'm uploading a new version of tar for testing now.  I'd appreciate
> feedback (to the cygwin list) on whether it solves the reported problem.

The binary you've uploaded, and the binary I built from the new source
exhibit the same problem that tar-1.13.25-3 showed:

$ touch f1
$ mkdir foo
$ touch foo/bar
$ ls -lR files/
files/:
total 0
-rw-r--r--    1 jeremy    None            0 Nov 10 12:26 f1
drwxr-xr-x+   2 jeremy    None            0 Nov 10 12:26 foo

files/foo:
total 0
-rw-r--r--    1 jeremy    None            0 Nov 10 12:26 bar
$ /usr/src/tar-1.13.25-4/src/tar --verbose --listed-incremental=list \
-cf archive.tar files
/usr/src/tar-1.13.25-4/src/tar: files/foo: Directory is new
files/
files/foo/
files/f1
files/foo/bar
$ /usr/src/tar-1.13.25-4/src/tar --verbose
--listed-incremental=list -cf archive.tar files
/usr/src/tar-1.13.25-4/src/tar: files/foo: Directory has been renamed
files/
files/foo/
files/foo/bar

I.e. files/foo/bar is backed-up even though it hasn't changed. With the
application of the following patch to the tar-1.13.25-4 source package:

--- src/incremen.c.orig 2003-11-10 12:27:36.094206400 +0000
+++ src/incremen.c      2003-11-10 12:33:06.629492800 +0000
@@ -437,7 +437,7 @@ read_directory_file (void)

          errno = 0;
 #ifdef __CYGWIN_USE_BIG_TYPES__
-         ino = strtoul (strp, &ebuf, 10);
+         ino = strtoull (strp, &ebuf, 10);
 #else
          ino = strtoul (strp, &ebuf, 10);
 #endif

The test works as expected:

$ rm list
$ /usr/src/tar-1.13.25-4/src/tar --verbose \
--listed-incremental=list -cf archive.tar files
/usr/src/tar-1.13.25-4/src/tar: files/foo: Directory is new
files/
files/foo/
files/f1
files/foo/bar
$ cat list
1068469530
+3160087061 8677873531989524896 files/foo
$ /usr/src/tar-1.13.25-4/src/tar --verbose \
--listed-incremental=list -cf archive.tar files
files/
files/foo/

However, if I use the tar-1.13.25-1 binary using this list file, I get...

$ cygcheck -c tar
Cygwin Package Information
Package              Version        Status
tar                  1.13.25-1      OK
$ tar --verbose --listed-incremental=list -cf archive.tar files
tar: list:2: Device number out of range
tar: list:2: Inode number out of range
tar: files/foo: Directory has been renamed
files/
files/foo/
files/foo/bar
tar: Error exit delayed from previous errors
$ tar --verbose --listed-incremental=list -cf archive.tar files
files/
files/foo/
ichthus$ cat list
1068469660
23317 2020475296 files/foo

i.e. different inode and device numbers are stored in the list file by
tar-1.13.25-1 and the patched version of tar-1.13.25-4. This doesn't
really matter as far as I'm concerned.

Jeremy

--
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple
Problem reports:       http://cygwin.com/problems.html
Documentation:         http://cygwin.com/docs.html
FAQ:                   http://cygwin.com/faq/


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]