Mail Archives: cygwin/2003/11/10/08:21:31
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/
- Raw text -